diff options
author | link <link@localhost> | 2002-08-20 01:51:31 +0000 |
---|---|---|
committer | link <link@localhost> | 2002-08-20 01:51:31 +0000 |
commit | 68888af368a57b04686cde3a230c168157a8ec89 (patch) | |
tree | e5eb3bec6befac28cd9ec8779750a257fdf8d95b | |
parent | aa56a2d0812a367de272abe2c1e9890fc4af2090 (diff) | |
download | markup-validator-68888af368a57b04686cde3a230c168157a8ec89.zip markup-validator-68888af368a57b04686cde3a230c168157a8ec89.tar.gz markup-validator-68888af368a57b04686cde3a230c168157a8ec89.tar.bz2 |
Merging to HEAD from validator-0_6_0 branch.
This will be validator-0_6_0b1c1 (Beta 1, Candidate 1).
55 files changed, 41038 insertions, 1831 deletions
diff --git a/htdocs/about.html b/htdocs/about.html index 7b43d41..e83d76f 100755 --- a/htdocs/about.html +++ b/htdocs/about.html @@ -1,78 +1,125 @@ -<!--#set var="revision" value="\$Id: about.html,v 1.12 2002-02-11 22:09:09 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:09 $" +<!--#set var="revision" value="\$Id: about.html,v 1.13 2002-08-20 01:51:22 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:22 $" --><!--#set var="title" value="About the W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="./" +--><!--#include virtual="header.html" --> <div> - <h2 id="skip" name="skip">About This Service</h2> + <h2 id="skip">About This Service</h2> <p> - <a href="/">The W3C HTML Validation Service</a> checks HTML documents - for conformance to W3C HTML and XHTML Recommendations and other - HTML standards. Related resources include: + <a href="./">The + <acronym title="World Wide Web Consortium">W3C</acronym> + <acronym title="HyperText Markup Language">HTML</acronym> + Validation Service</a> checks + <acronym title="HyperText Markup Language">HTML</acronym> + documents for conformance to + <acronym title="World Wide Web Consortium">W3C</acronym> + <acronym title="HyperText Markup Language">HTML</acronym> and + <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> + Recommendations and other + <acronym title="HyperText Markup Language">HTML</acronym> + standards. Related resources include: </p> - <ul> - <li><a title="Source Code for The W3C HTML Validation Service" href="/source/">Source code availability</a>.</li> - <li><a href="todo.html">The TODO list for The W3C HTML Validation Service</a>.</li> + <li><a title="Source Code for The W3C HTML Validation Service" + href="source/">Source code availability</a>.</li> + <li><a href="todo.html">The TODO list for The <acronym + title="World Wide Web Consortium">W3C</acronym> + <acronym title="HyperText Markup Language">HTML</acronym> + Validation Service</a>.</li> <li><a href="sgml-lib/catalog">DTDs (document types) supported by The - W3C HTML Validation Service</a> (the SGML catalog).</li> + <acronym title="World Wide Web Consortium">W3C</acronym> + <acronym title="HyperText Markup Language">HTML</acronym> + Validation Service</a> (the <acronym + title="Standard Generalized Markup Language">SGML</acronym> + catalog).</li> <li><a href="http://lists.w3.org/Archives/Public/www-validator/">The www-validator mailing list</a>.</li> - <li><a href="feedback.html">How to provide feedback on The W3C HTML Validation Service</a>.</li> + <li><a href="feedback.html">How to provide feedback on The + <acronym title="World Wide Web Consortium">W3C</acronym> + <acronym title="HyperText Markup Language">HTML</acronym> + Validation Service</a>.</li> </ul> </div> - <div> - <h2><a name="others">Other resources</a></h2> + <div id="others"> + <h2>Other resources</h2> <div> <h3>Documentation & Specifications</h3> <ul> - <li><a href="http://www.w3.org/MarkUp/">W3C's HTML home page</a>.</li> - <li><a href="http://www.w3.org/TR/html401/">The HTML 4.01 - specification</a>.</li> - <li><a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0: + <li><a href="http://www.w3.org/MarkUp/"><acronym + title="World Wide Web Consortium">W3C</acronym>'s + <acronym title="HyperText Markup Language">HTML</acronym> + home page</a>.</li> + <li><a href="http://www.w3.org/TR/html401/">The <acronym + title="HyperText Markup Language">HTML</acronym> 4.01 + specification</a>.</li> + <li><a href="http://www.w3.org/TR/xhtml1/"><acronym + title="eXtensible HyperText Markup Language">XHTML</acronym> 1.0: The Extensible HyperText Markup Language</a>.</li> - <li><a href="http://www.w3.org/TR/xhtml11/">XHTML 1.1: - Module-based XHTML</a>.</li> + <li><a href="http://www.w3.org/TR/xhtml11/"><acronym + title="eXtensible HyperText Markup Language">XHTML</acronym> 1.1: + Module-based <acronym + title="eXtensible HyperText Markup Language">XHTML</acronym></a>.</li> </ul> </div> <div> <h3>Online Tools & Other Validators</h3> <ul> <li>The <a - href="http://www.htmlhelp.org/tools/validator/">WDG HTML - validator</a> is another excellent online validation service.</li> + href="http://www.htmlhelp.org/tools/validator/"><acronym + title="Web Design Group">WDG</acronym> + <acronym title="HyperText Markup Language">HTML</acronym> + validator</a> is another excellent online validation service.</li> <li><a href="http://arealvalidator.com/">A Real Validator</a> - is a shareware HTML syntax checker for Windows systems, - from the author of the WDG validator.</li> + is a shareware <acronym + title="HyperText Markup Language">HTML</acronym> syntax checker + for Windows systems, from the author of the <acronym + title="Web Design Group">WDG</acronym> validator.</li> <li><a href="http://valet.webthing.com/">Site Valet</a> by Nick Kew - is a comprehensive set of tools for checking and monitoring your - web sites.</li> - <li>Clean up your HTML using <a - href="http://www.w3.org/People/Raggett/tidy/">HTML tidy</a> + is a comprehensive set of Quality Assurance tools for checking and + monitoring your web sites.</li> + <li>Clean up your <acronym + title="HyperText Markup Language">HTML</acronym> using <a + href="http://www.w3.org/People/Raggett/tidy/"><acronym + title="HyperText Markup Language">HTML</acronym> tidy</a> (or use Site Valet's <a href="http://valet.webthing.com/tidy/">web interface to tidy</a>.)</li> - <li>Validate your <a href="http://www.w3.org/Style/CSS/">CSS</a> using - the <a href="http://jigsaw.w3.org/css-validator/">W3C CSS + <li>Validate your <a href="http://www.w3.org/Style/CSS/"><acronym + title="Cascading Style Sheets">CSS</acronym></a> using + the <a href="http://jigsaw.w3.org/css-validator/"><acronym + title="World Wide Web Consortium">W3C</acronym> + <acronym title="Cascading Style Sheets">CSS</acronym> Validation Service</a>.</li> - <li>Validate your <a href="http://www.w3.org/RDF/">RDF</a> using - the <a href="http://www.w3.org/RDF/Validator/">W3C RDF + <li>Validate your <a href="http://www.w3.org/RDF/"><acronym + title="Resource Description Framework">RDF</acronym></a> using + the <a href="http://www.w3.org/RDF/Validator/"><acronym + title="World Wide Web Consortium">W3C</acronym> + <acronym title="Resource Description Framework">RDF</acronym> Validation Service</a>.</li> - <li>Validate your <a href="http://www.w3.org/XML/Schema">XML Schema</a> + <li>Validate your <a href="http://www.w3.org/XML/Schema"><acronym + title="eXtensible Markup Language">XML</acronym> Schema</a> documents using the <a - href="http://www.w3.org/2001/03/webdata/xsv">W3C - XML Schema Validator</a>.</li> + href="http://www.w3.org/2001/03/webdata/xsv"><acronym + title="World Wide Web Consortium">W3C</acronym> + <acronym title="eXtensible Markup Language">XML</acronym> + Schema Validator</a>.</li> </ul> </div> </div> - <div> - <h2><a name="credits">Credits</a></h2> + <div id="credits"> + <h2>Credits</h2> <p> - The W3C HTML Validation Service was created and is maintained by - <a href="http://www.w3.org/People/Gerald/">Gerald Oskoboiny</a>. + The <acronym title="World Wide Web Consortium">W3C</acronym> + <acronym title="HyperText Markup Language">HTML</acronym> Validation + Service was created and is maintained by + <a title="Gerald Oskoboiny's Home Page" + href="http://www.w3.org/People/Gerald/">Gerald Oskoboiny</a>. In a previous incarnation it was known as "The Kinder, Gentler, - HTML Validator", but has since found a new home at the W3C + <acronym title="HyperText Markup Language">HTML</acronym> Validator", + but has since found a new home at the <acronym + title="World Wide Web Consortium">W3C</acronym> Systems Team where Gerald still slaves away at it. </p> <p> @@ -80,12 +127,21 @@ </p> <ul> <li> - <a href="http://www.jclark.com/">James Clark</a>'s excellent <a - href="http://www.jclark.com/sp/">SGML parser</a>. + A derivative version of <a href="http://www.jclark.com/">James + Clark</a>'s excellent <a href="http://www.jclark.com/sp/"><acronym + title="Standard Generalized Markup Language">SGML</acronym> (and + <acronym title="eXtensible Markup Language">XML</acronym>) + parser</a> <acronym title="SGML Processor">SP</acronym>. The + version in use for this service is the "OpenSP" version from + the <a href="http://openjade.sf.net/">OpenJade</a> team. For some + time it also made use of <a + href="http://www.htmlhelp.com/%7Eliam/">Liam Quinn</a>'s + modified version, lq-nsgmls. </li> <li> - The <a href="http://www.linpro.no/lwp/">LWP Perl Modules</a> - by Gisle Aas and Martijn Koster for retrieving documents. + The <a href="http://www.linpro.no/lwp/"><acronym + title="libwww-perl">LWP Perl Modules</a> + by Gisle Aas and Martijn Koster for retrieving documents. </li> <li>Documentation and Error Explanations originally written by Scott Bigham.</li> <li>Open source software including <a @@ -99,11 +155,21 @@ <li> Patches and ideas from: <ul> + <li><a href="http://www.aaronsw.com/">Aaron Swartz</a></li> + <li><a href="http://www.smith-family.com/">Christian Smith</a></li> + <li><a href="http://www.w3.org/People/Connolly/">Dan Connolly</a></li> + <li><a href="http://www.w3.org/People/Hugo/">Hugo Haas</a></li> + <li><a href="http://www.jibbering.com/">Jim Ley</a></li> + <li><a href="http://www.w3.org/People/karl/">Karl Dubost</a></li> <li><a href="http://www.htmlhelp.com/%7Eliam/">Liam Quinn</a></li> <li><a href="http://www.w3.org/People/D%c3%bcrst/">Martin Dürst</a></li> <li><a href="http://www.webthing.com/~nick/">Nick Kew</a></li> + <li><a href="http://www.w3.org/People/olivier/">Olivier Thereaux</a></li> + <li><a href="http://purl.org/net/sbp/">Sean B. Palmer</a></li> <li><a href="http://newsreaders.com/%7Elink/">Terje Bless</a></li> - <li><a href="http://lists.w3.org/Archives/Public/www-validator/">...and the nice people on www-validator@w3.org.</a></li> + <li><a href="http://www.iki.fi/scop/">Ville Skyttä</a></li> + <li><a href="http://lists.w3.org/Archives/Public/www-validator/">...and + the nice people on www-validator@w3.org.</a></li> </ul> </li> </ul> @@ -112,11 +178,12 @@ <p> The <a href="http://lists.w3.org/Archives/Public/www-html/1994Jul/0015">first - online HTML validation service</a> was created by + online <acronym title="HyperText Markup Language">HTML</acronym> validation + service</a> was created by <a href="http://www.w3.org/People/Connolly/">Dan Connolly</a> and <a href="http://www.markgaither.com/">Mark Gaither</a>. </p> -<!--#include virtual="/footer.html" --> +<!--#include virtual="footer.html" --> </body> </html> diff --git a/htdocs/accesskeys.html b/htdocs/accesskeys.html new file mode 100755 index 0000000..bce39c3 --- /dev/null +++ b/htdocs/accesskeys.html @@ -0,0 +1,59 @@ +<!--#set var="revision" value="\$Id: accesskeys.html,v 1.2 2002-08-20 01:51:22 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:22 $" +--><!--#set var="title" value="Accesskeys Legend For The W3C HTML Validation Service" +--><!--#set var="relroot" value="./" +--><!--#include virtual="header.html" --> + + <div id="skip" class="intro"> + <p> + The following accesskeys are implemented throughout the + site in an attempt to help users using screen-readers. + If you find a page that does not conform to this, + please let us know using the instructions on the + <a href="feedback.html">Feedback</a> page. + </p> + </div> + <div> + <h2>Accesskey Legend</h2> + <div id="navkeys"> + <h3>Navigation Menu Accesskeys</h3> + <dl> + <dt>s</dt> + <dd>Skip past the navigation links to what is considered the main content of the page.</dd> + <dt>k</dt> + <dd>Attached to the "Accesskey Legend" link in the navigation menu (points to this page).</dd> + <dt>h</dt> + <dd>Attached to the "Home Page" link in the navigation menu..</dd> + </dl> + </div> + <div id="formkeys"> + <h3>Validation Form Accesskeys</h3> + <dl> + <dt>r</dt> + <dd>Attached to the "Results" link in the "Jump To" menu.</dd> + <dt>1</dt> + <dd>Attached to the "Address" field in the form.</dd> + <dt>2</dt> + <dd>Attached to the "Character Encoding" menu in the form.</dd> + <dt>3</dt> + <dd>Attached to the "Doctype" menu in the form.</dd> + <dt>4</dt> + <dd>Attached to the fieldset containing all the option checkboxes in the form.</dd> + <dt>5</dt> + <dd>Attached to the "Show Page Source" option in the form.</dd> + <dt>6</dt> + <dd>Attached to the "Show Outline" option in the form.</dd> + <dt>7</dt> + <dd>Attached to the "Show Parse Tree" option in the form.</dd> + <dt>8</dt> + <dd>Attached to the "Exclude Attributes from Parse Tree" option in the form.</dd> + <dt>9</dt> + <dd>Attached to the "Revalidate" (submit) button in the form.</dd> + </dl> + </div> + </div> + +<!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/base.css b/htdocs/base.css index 0844dbe..9d95a74 100644 --- a/htdocs/base.css +++ b/htdocs/base.css @@ -1,27 +1,46 @@ /* - Base Style Sheet for the W3C HTML Validation Service. + Base Style Sheet for the W3C HTML Validation Service. - Copyright © 2000 W3C (MIT, INRIA, Keio). All Rights Reserved. - See http://www.w3.org/Consortium/Legal/ipr-notice.html#Copyright + Copyright 2000 W3C (MIT, INRIA, Keio). All Rights Reserved. + See http://www.w3.org/Consortium/Legal/ipr-notice.html#Copyright - $Id: base.css,v 1.20 2002-02-13 16:53:17 link Exp $ + $Id: base.css,v 1.21 2002-08-20 01:51:22 link Exp $ */ +@import url(results.css); /* CSS for validation results. */ +@import url(navbar.css); /* CSS for navigation menu. */ +@import url(tips.css); /* CSS for Quality Tips. */ + body { - color: black; - background: white; - font-size: 1em; - font-weight: normal; - word-spacing: normal; - letter-spacing: normal; - text-transform: none; - font-family: Verdana, Myriad Web, Syntax, sans-serif; + line-height: 1.2; + color: black; + background: white; + font-weight: normal; + word-spacing: normal; + letter-spacing: normal; + text-transform: none; + font-family: Tahoma, Verdana, "Myriad Web", Syntax, sans-serif; + font-style: normal; + text-decoration: none; + word-spacing: normal; + letter-spacing: normal; + text-transform: none; } a:hover {background-color:#eee} a:visited {color: purple} -/* pre {font-family: monospace} */ +acronym:hover, abbrev:hover {cursor: help} +abbrev[title], acronym[title], span[title] { + border-bottom: thin dotted; + cursor: help; +} + +pre, code, tt { + font-family: monospace; + font-size: 1em; + white-space: pre; +} a:link img, a:visited img {border-style: none} a img {color: white} /* The only way to hide the border in NS 4.x */ @@ -43,67 +62,64 @@ div.issue { .hideme {display: none} +#Notice { + border: solid; + margin: .2em; + padding: .5em; + text-align: justify; +} + /* dt a {color: black} */ /* These are usually targets and not links */ h1 a {color: black} /* These are usually targets and not links */ h2 a {color: black} /* These are usually targets and not links */ h3 a {color: black} /* These are usually targets and not links */ -h1 img {vertical-align: middle} +img {vertical-align: middle} h1#title { background-color: #eee; - border-top: 1px solid black; border-bottom: 1px solid black; - border-left: 1px solid black; padding: .25em; } -address img {float: right} -address { - padding-top: .5em; - padding-right: 1em; - padding-left: 1em; - padding-bottom: .5em; - margin-top: 3em; - border-top: 1px solid black; - background-color: #eee; - clear: both; -} +/* done vs. tbc for the TODO list */ +.done { text-decoration: line-through; } -p.navbar { +address img { float: right; - text-align: right; + width: 88px; } -p.navbar a:hover { - background: #ccc; +address { + padding-top: .5em; + padding-right: 1em; + padding-left: 1em; + padding-bottom: .5em; + margin-top: 3em;; + border-top: 1px solid black; + background-color: #eee; + clear: right; } -p.navbar { +p.jumpbar { + text-align: left; text-decoration: none; - margin: .1em; + margin-left: auto; + margin-right: auto; padding: 1ex; - min-width: 13ex; - max-width: 15em; - width: 13ex; background-color: #eee; - border:1px dashed #999; - clear: both; + border-left: 1px solid black; + border-right: 1px solid black; } -.nsnote { - display: none; +p.jumpbar a:hover { + background: #ccc; } -table th { - text-align: left; - vertical-align: top; +.nsnote { + display: none; } -div.stb {clear: both} - -p { - max-width: 75ex; -} +.stb {clear: left} div.colophon { @@ -116,78 +132,79 @@ div.colophon em { } /* Various header(ish) things. Definitions cribbed from the CORE Styles. */ -h1 { - font-family: Tahoma, Verdana, Myriad Web, Syntax, sans-serif; - font-size-adjust: .53; - font-size: 2em; - font-weight: bold; - font-style: normal; - text-decoration: none; - word-spacing: normal; - letter-spacing: normal; - text-transform: none; - color: #005A9C; - } - -h2 { - font-family: Tahoma, Verdana, Myriad Web, Syntax, sans-serif; - font-size-adjust: .53; - font-size: 1.75em; - font-weight: 500; - font-style: normal; - text-decoration: none; - word-spacing: normal; - letter-spacing: normal; - text-transform: none; - } - -h3 { - font-family: Tahoma, Verdana, Myriad Web, Syntax, sans-serif; - font-size-adjust: .53; - font-size: 1.58em; - font-weight: 500; - font-style: italic; - text-decoration: none; - word-spacing: normal; - letter-spacing: normal; - text-transform: none; - } - -h4 { - font-family: Tahoma, Verdana, Myriad Web, Syntax, sans-serif; - font-size-adjust: .53; - font-size: 1.33em; - font-weight: 500; - font-style: normal; - text-decoration: none; - word-spacing: normal; - letter-spacing: normal; - text-transform: none; - } - -h5, dt { - font-family: Tahoma, Verdana, Myriad Web, Syntax, sans-serif; - font-size-adjust: .53; - font-size: 1.17em; - font-weight: 500; - font-style: normal; - text-decoration: none; - word-spacing: normal; - letter-spacing: normal; - text-transform: none; - margin-top: 1em; - } +h1 { + font-family: Tahoma, Verdana, "Myriad Web", Syntax, sans-serif; + font-size-adjust: .53; + font-size: 2em; + font-weight: bold; + font-style: normal; + text-decoration: none; + word-spacing: normal; + letter-spacing: normal; + text-transform: none; + /* color: #005A9C; */ + color: #053188 +} + +h2 { + font-family: Tahoma, Verdana, "Myriad Web", Syntax, sans-serif; + font-size-adjust: .53; + font-size: 1.75em; + font-weight: 500; + font-style: normal; + text-decoration: none; + word-spacing: normal; + letter-spacing: normal; + text-transform: none; +} + +h3 { + font-family: Tahoma, Verdana, "Myriad Web", Syntax, sans-serif; + font-size-adjust: .53; + font-size: 1.58em; + font-weight: 500; + font-style: italic; + text-decoration: none; + word-spacing: normal; + letter-spacing: normal; + text-transform: none; +} + +h4 { + font-family: Tahoma, Verdana, "Myriad Web", Syntax, sans-serif; + font-size-adjust: .53; + font-size: 1.33em; + font-weight: 500; + font-style: normal; + text-decoration: none; + word-spacing: normal; + letter-spacing: normal; + text-transform: none; +} + +h5, dt { + font-family: Tahoma, Verdana, "Myriad Web", Syntax, sans-serif; + font-size-adjust: .53; + font-size: 1.17em; + font-weight: 500; + font-style: normal; + text-decoration: none; + word-spacing: normal; + letter-spacing: normal; + text-transform: none; + margin-top: 1em; +} -h6 { - font-family: Tahoma, Verdana, Myriad Web, Syntax, sans-serif; - font-size-adjust: .53; - font-size: 1em; - font-weight: 500; - font-style: normal; - text-decoration: none; - word-spacing: normal; - letter-spacing: normal; - text-transform: none; - } +h6 { + font-family: Tahoma, Verdana, "Myriad Web", Syntax, sans-serif; + font-size-adjust: .53; + font-size: 1em; + font-weight: 500; + font-style: normal; + text-decoration: none; + word-spacing: normal; + letter-spacing: normal; + text-transform: none; +} diff --git a/htdocs/config/charset.cfg b/htdocs/config/charset.cfg index ec5f4c4..1215d23 100644 --- a/htdocs/config/charset.cfg +++ b/htdocs/config/charset.cfg @@ -1,7 +1,7 @@ # # Mapping of 'charset' or 'encoding' parameter to conversion parameter # -# $Id: charset.cfg,v 1.3 2002-04-01 05:22:49 duerst Exp $ +# $Id: charset.cfg,v 1.4 2002-08-20 01:51:24 link Exp $ # # this version for glibc iconv 2.1; change for other versions # @@ -59,5 +59,6 @@ x-mac-roman X macintosh x-sjis X shift_jis iso8859-1 X iso-8859-1 ascii X us-ascii +8859_1 X iso-8859-1 # this one is in IANA, but better use only windows-1252 iso-8859-1-Windows-3.1-Latin-1 X windows-1252 diff --git a/htdocs/config/check.cfg b/htdocs/config/check.cfg new file mode 100644 index 0000000..22a7995 --- /dev/null +++ b/htdocs/config/check.cfg @@ -0,0 +1,66 @@ +# +# Main Configuration File for the W3C HTML Validation Service. +# +# $Id: check.cfg,v 1.2 2002-08-20 01:51:24 link Exp $ +# +# Basic Key/Value pairs, separated by TABs. +# Blank lines and lines beginning with "#" are ignored. +# +# The file:// URLs aren't really URLs; it's just convenient shorthand. +# +# TODO: +# * Document format in /docs instead of here. +# * Ditch this format for a sane one; probably using Config::General. +# + +DEBUG 1 + +# +# Email address of the maintainer of this service. +Maintainer gerald@w3.org + +# +# The "Home Page" for the service. +Home Page http://validator.w3.org/ + +# +# Base URI To Error Explanations (doc/errors.html) +Msg FAQ URI http://validator.w3.org/docs/errors.html + +# +# Base URI for the Element Reference. +Element Ref URI http://www.htmlhelp.com/reference/html40/ + +# +# The SGML Library Path. +SGML Library /usr/local/validator/htdocs/sgml-lib + +# +# The SGML Parser to use. +SGML Parser /usr/bin/onsgmls + +# +# Mapping tables etc... +Element Map file:///usr/local/validator/htdocs/config/eref.cfg +FPI to Text file:///usr/local/validator/htdocs/config/fpis.cfg +Error to URI file:///usr/local/validator/htdocs/config/frag.cfg +File Type file:///usr/local/validator/htdocs/config/type.cfg +Doctypes file:///usr/local/validator/htdocs/config/doctypes.cfg +Charsets file:///usr/local/validator/htdocs/config/charset.cfg + + +# +# DanC territory... +Tips DB file:///usr/local/validator/htdocs/config/tips.cfg + + +# +# The "templates" for headers, footers... +Header /usr/local/validator/htdocs/header.html +Footer /usr/local/validator/htdocs/footer.html + + +# +# Allowed Protocols +# - List of (comma separated) protocol schemes to allow. +Allowed Protocols http,https diff --git a/htdocs/config/tips.cfg b/htdocs/config/tips.cfg new file mode 100644 index 0000000..83fb0f2 --- /dev/null +++ b/htdocs/config/tips.cfg @@ -0,0 +1,14 @@ +# +# "Tip Of The Day" Configuration. +# +# Each key is a URL and the value is the text that should be displayed as +# the link to it. Will appear in Validation Results pages. To disable +# just comment out or delete all lines in this file. +# +# $Id: tips.cfg,v 1.2 2002-08-20 01:51:24 link Exp $ +# + +http://www.w3.org/2001/06tips/good-titles <strong><title></strong>: the most important element of a quality Web page. +http://www.w3.org/2001/06tips/noClickHere Don't use "click here" as link text! +http://www.w3.org/2001/06tips/Use_h1_for_Title Use h1 for title! +http://www.w3.org/2001/06tips/reback Use standard redirects: don't break the back button!
\ No newline at end of file diff --git a/htdocs/config/type.cfg b/htdocs/config/type.cfg index 2a5aaac..c27ea3b 100644 --- a/htdocs/config/type.cfg +++ b/htdocs/config/type.cfg @@ -1,13 +1,14 @@ # # Mapping of Content-Type to document type. # -# $Id: type.cfg,v 1.4 2001-07-29 08:00:50 link Exp $ +# $Id: type.cfg,v 1.5 2002-08-20 01:51:24 link Exp $ -text/xml xml -image/svg svg -image/svg+xml svg -application/smil smil -application/xml xml +text/xml xml+xml +image/svg svg+xml +image/svg+xml svg+xml +application/smil smil+xml +application/xml xml+xml text/html html -text/vnd.wap.wml xml +text/vnd.wap.wml xml+xml +application/xhtml+xml html+xml diff --git a/htdocs/detailed.html b/htdocs/detailed.html index 1c3d4b0..2c6e2e5 100755 --- a/htdocs/detailed.html +++ b/htdocs/detailed.html @@ -1,19 +1,25 @@ -<!--#set var="revision" value="\$Id: detailed.html,v 1.2 2002-02-11 22:09:09 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:09 $" +<!--#set var="revision" value="\$Id: detailed.html,v 1.3 2002-08-20 01:51:22 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:22 $" --><!--#set var="title" value="The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="./" +--><!--#include virtual="header.html" --> - <p name="skip" id="skip"> - This form allows you to enter a URI or upload files from your computer and - have them validated. + <p id="skip"> + This form allows you to enter a <acronym + title="Universal Resource Identifier">URI</acronym> or upload files from + your computer and have them validated. </p> <div> - <form method="post" enctype="multipart/form-data" action="/check"> + <form method="post" enctype="multipart/form-data" action="check"> <table> - <tr><th><label title="Address of page to Validate" for="uri">Address (URI):</label></th><td colspan="2"><input id="uri" name="uri" size="50" /> or...</td></tr> - <tr><th><label for="uploaded_file">Local File:</label></th><td colspan="2"><input type="file" name="uploaded_file" size="50" /></td></tr> + <tr><th><label title="Address of page to Validate" + for="uri">Address:</label></th><td colspan="2"><input id="uri" + name="uri" size="50" /> or...</td></tr> + <tr><th><label for="uploaded_file">Local File:</label></th><td + colspan="2"><input type="file" id="uploaded_file" + name="uploaded_file" size="50" /></td></tr> <tr> - <th><label for="charset">Character Encoding:</label></th> + <th><label for="charset">Encoding:</label></th> <td colspan="2"> <select id="charset" name="charset"> <option value="(detect automatically)">(detect automatically)</option> @@ -54,7 +60,7 @@ </td> </tr> <tr> - <th><label for="doctype">Document Type:</label></th> + <th><label for="doctype">Type:</label></th> <td colspan="2"> <select id="doctype" name="doctype"> <option value="Inline">(detect automatically)</option> @@ -85,6 +91,6 @@ </table> </form> </div> -<!--#include virtual="/footer.html" --> +<!--#include virtual="footer.html" --> </body> </html> diff --git a/htdocs/dev/tests/application-xhtml_xml.xhtml b/htdocs/dev/tests/application-xhtml_xml.xhtml new file mode 100755 index 0000000..f2aac06 --- /dev/null +++ b/htdocs/dev/tests/application-xhtml_xml.xhtml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > + <head> + <title>application/xhtml+xml Test Case</title> + </head> + <body> + <p>This is a test case for the application/xhtml+xml MIME type.</p> + </body> +</html> + diff --git a/htdocs/dev/tests/index.html b/htdocs/dev/tests/index.html index 96c72d9..06aa380 100755 --- a/htdocs/dev/tests/index.html +++ b/htdocs/dev/tests/index.html @@ -1,137 +1,118 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<html> - -<head> - <title>W3C HTML Validation Service: Tests</title> - <link rev="made" href="mailto:gerald@w3.org"> - <meta name="revision" - content="$Id: index.html,v 1.38 2001-09-14 02:56:59 link Exp $"> -</head> - -<body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b"> - -<p> - <a href="http://www.w3.org/"><img - src="http://www.w3.org/Icons/WWW/w3c_home" height=48 border=0 - alt="W3C"></a> -</p> - -<h1>W3C HTML Validation Service: Tests</h1> - -<p> - This page is mainly for my own use, to test various things to - make sure everything works fine after making changes to <a - href="/">the validator</a>. If you can think of interesting - test cases that aren't on this page, <a - href="/feedback.html">let me know</a>. -</p> - -<h2><a name="valid">Docs that should be valid</a></h2> - -<ul> -<li><a href="/check?uri=http://www.w3.org/">W3C home</a> -<li><a href="/check?uri=http://www.w3.org/;ss;sp;outline;weblint">W3C home, extra parameters</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/html40-strict.html;ss">HTML 4.0 Strict</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/html40-transitional.html;ss">HTML 4.0 Transitional</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/html40-frameset.html;ss">HTML 4.0 Frameset</a> -<li><a href="/check?uri=http://www.w3.org/TR/1999/PR-html40-19990824/">HTML 4.01</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/iso-html.html;ss">ISO-HTML</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/xhtml1-strict.html;ss">XHTML 1.0 Strict</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/xhtml1-strict-minimal.html;ss">XHTML 1.0 Strict, minimal document from xhtml spec</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/xhtml1-strict-missing-xmlns.html;ss">XHTML 1.0 Strict, missing xmlns attribute (valid)</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/xhtml-basic10.html;ss">XHTML Basic 1.0 (valid)</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/xhtml11-minimal.html;ss">XHTML 1.1 (minimal document)</a> -<li><a href="/check?uri=http://www.w3.org/Protocols/rfc2616/rfc2616.html">XHTML sans doctype</a> (DanC's HTMLized RFC 2616) -<li><a href="/check?uri=http://www.w3.org/TR/1999/WD-xhtml1-19991124/">XHTML 1.0</a> -<li><a href="/check?uri=http://www.w3.org/TR/1998/REC-xml-19980210.xml">XML 1.0</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/xhtml-mathml2.html;ss">XHTML/MathML2</a> (from the <a href="http://www.w3.org/TR/2000/CR-MathML2-20001113/chapter2.html#N1783">MathML 2.0 spec</a>) -<li><a href="/check?uri=http://validator.w3.org/dev/tests/xhtml-mathml2-fpi.html;ss">XHTML/MathML2 w/FPI</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/mathml2.html;ss">MathML 2.0</a> (minimal test document) -<li><a href="/check?uri=http://www.w3.org/1999/09/SVG-access/computer.svg">image/svg</a> -<li><a href="/check?uri=http://www.w3.org/TR/2001/PR-SVG-20010719/images/struct/StandAlone01.svg">SVG 1.0 from 20010719 PR</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/REC-SVG-1_0-minimal.svg">SVG 1.0 Rec. minimal document</a> -<li>@@ application/smil -<li>SMIL 1.0 <a href="/check?uri=http://validator.w3.org/dev/tests/smil10-minimal.smi">Minimal Document</a> w/DOCTYPE. -<li>SMIL 2.0 <a href="/check?uri=http://validator.w3.org/dev/tests/smil20-profile-doctype.smi">Testcase (wrong Namespace?)</a> w/DOCTYPE. -<li><a name="xml">more XML test cases</a>: - <ul> - <li><a href="/check?uri=http://impressive.net/people/gerald/2000/10/18/test-staroffice-doc.xml;ss">XML output from OpenOffice 5.2</a> ("Build/Tag number OpenOffice605"), many namespaces - <li><a href="/check?uri=http://www.oasis-open.org/committees/xmltest/xmlconf-19990712.xml;ss">xmlconf-19990712.xml</a> - <li><a href="/check?uri=http://www.w3.org/1999/08/WD-xpath-19990813.xml;ss">WD-xpath-19990813.xml</a> - <li><a href="http://dmoz.org/rdf.html">stuff linked from - http://dmoz.org/rdf.html</a> - </ul> -</ul> - -<h2><a name="encodings">Different encodings</a></h2> - -<ul> -<li><a href="/check?uri=http://www.w3.org/2001/06/utf-8-test/UTF-8-demo.html">UTF-8 -sample text (correct)</a>, <a href='http://www.w3.org/2001/06/utf-8-test/'>more positive tests</a> -<li><a href="/check?uri=http://www.w3.org/2001/06/utf-8-wrong/UTF-8-test.html">UTF-8 -stress test (wrong cases)</a>, <a href='http://www.w3.org/2001/06/utf-8-wrong/'>more negative tests</a> -<li><a href="/check?uri=http://www.w3.org/Press/1998/XSL-WD.html.ja">iso-2022-jp encoded document</a> -<li><a href="/check?uri=http://www.vir.si/">windows-1250 encoded document (Slovenian)</a> -<li><a href="/check?uri=http://www.w3.org/TR/ruby/">utf-8 encoded document</a> -</ul> - -<h2><a name="errors">Error conditions & strange cases</a></h2> - -<ul> -<li><a href="/check/referer">/check/referer</a> -<li><a href="/check?uri=http://www.w3.org/MarkUp">redirect</a> -<li><a href="/check">script invoked with no parameters</a> -<li><a href="/check?uri=">uri parameter is empty</a> -<li><a href="/check?uri=www.w3.org/">uri is missing http://</a> -<li><a href="/check?uri=http://www.w3.org/bogus">404 not found</a> -<li><a href="/check?uri=http://validator.w3.org/sgml-lib/catalog">text/plain</a> -<li><a href="/check?uri=http://validator.w3.org:8000/">httpd on a non-standard port</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/xhtml1-missing-doctype-and-xmlns.html;ss">XHTML, no doctype, no xmlns</a> (invalid) -<li><a href="/check?uri=http://validator.w3.org/dev/tests/bogus-fpi.html;ss">bogus FPI</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/xhtml1-blank-1st-line.html;ss">XHTML1, blank first line</a> (<a href="http://lists.w3.org/Archives/Public/www-validator/2000JanMar/0144.html">should be marked as invalid</a>) -<li><a href="/check?uri=http://validator.w3.org/dev/tests/xhtml1-bogus-element.html;ss">XHTML1, bogus element</a> -<li><a href="/check?uri=http://www.w3.org/2001/01/xml-latin1.html;ss;sp;noatt">us-ascii xml document with a latin1 character</a> (should be invalid) -<li><a href="/check?uri=http://validator.w3.org/dev/tests/no-newlines.html;ss;sp;noatt">no newlines</a> -<li><a href="/check?uri=file%3A///etc/passwd">a file: URI</a> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/nonSGML-chars.html">Non-SGML Chars.</a> - -</ul> - -<h2><a name="invalid">Docs that are probably invalid</a></h2> - -<ul> -<li><a href="/check?uri=http://www.yahoo.com/">Yahoo!</a> -<li><a href="/check?uri=http://www.microsoft.com/">Microsoft</a> -<li><a href="/check?uri=http://www.netscape.com/">Netscape</a> -</ul> - -<h2><a name="suites">Other Test Suites</a></h2> - -<ul> - <li><a href="http://www.nist.gov/xml/">NIST's XML, DOM test suites</a> -</ul> - -<p> - See also: <a href="../../source/">validator source page</a>. -</p> - -<h2><a name="regress">Bugs and Regression Tests</a></h2> - -<ul> -<li><a href="/check?uri=http://validator.w3.org/dev/tests/long-lines.html">Long Lines (cause a core)</a> -</ul> - -<hr> - -<address> - <a href="http://validator.w3.org/check/referer"><img - src="http://validator.w3.org/images/vh40.gif" height=31 width=88 - align=right border=0 alt="Valid W3C HTML 4.0!"></a> - <a href="/feedback.html">Gerald Oskoboiny</A><br> - $Date: 2001-09-14 02:56:59 $ -</address> - -</body> - +<!--#set var="revision" value="\$Id: index.html,v 1.39 2002-08-20 01:51:24 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:24 $" +--><!--#set var="title" value="The W3C HTML Validation Service: Tests" +--><!--#set var="relroot" value="../../" +--><!--#include virtual="../../header.html" --> + + <p id="skip"> + This page is mainly for my own use, to test various things to + make sure everything works fine after making changes to + <a href="../../">the validator</a>. If you can think of interesting + test cases that aren't on this page, + <a href="../../feedback.html">let me know</a>. + </p> + <div id="valid"> + <h2>Docs that should be valid</h2> + <ul> + <li><a href="../../check?uri=http://www.w3.org/">W3C home</a></li> + <li><a href="../../check?uri=http://www.w3.org/;ss;sp;outline">W3C home, extra parameters</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/html40-strict.html;ss">HTML 4.0 Strict</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/html40-transitional.html;ss">HTML 4.0 Transitional</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/html40-frameset.html;ss">HTML 4.0 Frameset</a></li> + <li><a href="../../check?uri=http://www.w3.org/TR/1999/PR-html40-19990824/">HTML 4.01</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/iso-html.html;ss">ISO-HTML</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/xhtml1-strict.html;ss">XHTML 1.0 Strict</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/xhtml1-strict-minimal.html;ss">XHTML 1.0 Strict, minimal document from xhtml spec</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/xhtml1-strict-missing-xmlns.html;ss">XHTML 1.0 Strict, missing xmlns attribute (valid)</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/xhtml-basic10.html;ss">XHTML Basic 1.0 (valid)</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/xhtml11-minimal.html;ss">XHTML 1.1 (minimal document)</a></li> + <li><a href="../../check?uri=http://www.w3.org/TR/1999/WD-xhtml1-19991124/">XHTML 1.0</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/xhtml-mathml2-fpi.html;ss">XHTML/MathML2 w/FPI</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/mathml2.html;ss">MathML 2.0</a> (minimal test document)</li> + <li><a href="../../check?uri=http://validator.w3.org:8001/dev/tests/application-xhtml_xml.xhtml">application/xhtml+xml</a></li> + <li><a href="../../check?uri=http://www.w3.org/TR/2001/PR-SVG-20010719/images/struct/StandAlone01.svg">SVG 1.0 from 20010719 PR</a></li> + <li>@@ application/smil</li> + <li>SMIL 1.0 <a href="../../check?uri=http://validator.w3.org/dev/tests/smil10-minimal.smi">Minimal Document</a> w/DOCTYPE.</li> + <li>SMIL 2.0 <a href="../../check?uri=http://validator.w3.org/dev/tests/smil20-profile-doctype.smi">Testcase (wrong Namespace?)</a> w/DOCTYPE.</li> + <li><a href="../../check?uri=http://www.w3.org/1999/08/WD-xpath-19990813.xml;ss">WD-xpath-19990813.xml</a></li> + <li><a href="../../check?uri=http://www.w3.org/TR/XHTMLplusMathMLplusSVG/sample.xhtml">Sample XHTML + MathML + SVG document (from the 9 August 2002 WD)</a></li> + </ul> + </div> + + <div id="invalid"> + <h2>Docs that are probably invalid</h2> + <ul> + <li><a href="../../check?uri=http://www.yahoo.com/">Yahoo!</a></li> + <li><a href="../../check?uri=http://www.microsoft.com/">Microsoft</a></li> + <li><a href="../../check?uri=http://www.netscape.com/">Netscape</a></li> + <li><a href="../../check?uri=http://www.w3.org/TR/1998/REC-xml-19980210.xml">XML 1.0</a></li> + </ul> + </div> + + <div id="well-formed"> + <h2>Docs that should be Well Formed</h2> + <ul> + <li><a href="../../check?uri=http://www.w3.org/Protocols/rfc2616/rfc2616.html">XHTML sans doctype</a> (DanC's HTMLized RFC 2616;well-formed, but not valid!)</li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/xhtml-mathml2.html;ss">XHTML/MathML2</a> + (from the <a href="http://www.w3.org/TR/2000/CR-MathML2-20001113/chapter2.html#N1783">MathML 2.0 spec</a>)</li> + <li><a href="../../check?uri=http://impressive.net/people/gerald/2000/10/18/test-staroffice-doc.xml;ss">XML output from OpenOffice 5.2</a> + ("Build/Tag number OpenOffice605"), many namespaces</li> + </ul> + </div> + + <div id="encodings"> + <h2>Different encodings</h2> + <ul> + <li><a href="../../check?uri=http://www.w3.org/2001/06/utf-8-test/UTF-8-demo.html">UTF-8 sample text (correct)</a>, + <a href='http://www.w3.org/2001/06/utf-8-test/'>more positive tests</a></li> + <li><a href="../../check?uri=http://www.w3.org/2001/06/utf-8-wrong/UTF-8-test.html">UTF-8 stress test (wrong cases)</a>, + <a href='http://www.w3.org/2001/06/utf-8-wrong/'>more negative tests</a></li> + <li><a href="../../check?uri=http://www.w3.org/Press/1998/XSL-WD.html.ja">iso-2022-jp encoded document</a></li> + <li><a href="../../check?uri=http://www.vir.si/">windows-1250 encoded document (Slovenian)</a></li> + <li><a href="../../check?uri=http://www.w3.org/TR/ruby/">utf-8 encoded document</a></li> + </ul> + </div> + + <div id="errors"> + <h2>Error conditions & strange cases</h2> + <ul> + <li><a href="../../check/referer">/check/referer</a></li> + <li><a href="../../check?uri=http://www.w3.org/MarkUp">redirect</a></li> + <li><a href="../../check">script invoked with no parameters</a></li> + <li><a href="../../check?uri=">uri parameter is empty</a></li> + <li><a href="../../check?uri=www.w3.org/">uri is missing http://</a></li> + <li><a href="../../check?uri=http://www.w3.org/bogus">404 not found</a></li> + <li><a href="../../check?uri=http://validator.w3.org/sgml-lib/catalog">text/plain</a></li> + <li><a href="../../check?uri=http://validator.w3.org:8000/">httpd on a non-standard port</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/xhtml1-missing-doctype-and-xmlns.html;ss">XHTML, no doctype, no xmlns</a> (invalid)</li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/bogus-fpi.html;ss">bogus FPI</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/xhtml1-blank-1st-line.html;ss">XHTML1, blank first line</a> + (<a href="http://lists.w3.org/Archives/Public/www-validator/2000JanMar/0144.html">should be marked as invalid</a>)</li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/xhtml1-bogus-element.html;ss">XHTML1, bogus element</a></li> + <li><a href="../../check?uri=http://www.w3.org/2001/01/xml-latin1.html;ss;sp;noatt">us-ascii xml document with a latin1 character</a> (should be invalid)</li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/no-newlines.html;ss;sp;noatt">no newlines</a></li> + <li><a href="../../check?uri=file%3A///etc/passwd">a file: URI</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/nonSGML-chars.html">Non-SGML Chars.</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/shorttags.html">SHORTTAGS and -wunclosed..</a></li> + <li><a href="../../check?uri=http://www.w3.org/1999/09/SVG-access/computer.svg">image/svg</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/REC-SVG-1_0-minimal.svg">SVG 1.0 Rec. minimal document</a></li> + <li><a href="../../check?uri=http://www.oasis-open.org/committees/xmltest/xmlconf-19990712.xml;ss">xmlconf-19990712.xml</a></li> + </ul> + </div> + + <div id="suites"> + <h2>Other Test Suites</h2> + <ul><li><a href="http://www.nist.gov/xml/">NIST's XML, DOM test suites</a></li></ul> + </div> + + <div id="regress"> + <h2>Bugs and Regression Tests</h2> + <ul> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/long-lines.html">Long Lines (cause a core)</a></li> + <li><a href="../../check?uri=http://validator.w3.org/dev/tests/trailing-nul.html">A trailing ASCII NUL character (trips up HTML::Parser)</a></li> + </ul> + </div> + +<!--#include virtual="../../footer.html" --> + </body> </html> - diff --git a/htdocs/dev/tests/shorttags.html b/htdocs/dev/tests/shorttags.html new file mode 100755 index 0000000..fe333fa --- /dev/null +++ b/htdocs/dev/tests/shorttags.html @@ -0,0 +1,12 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> + <head> + <title>SHORTTAGS Test</title> + </head> + <body> + <div<p> + This is a test of the SHORTTAGS and -wunclosed feature. + It contains an implicitly closed <div>. + </div> + </body> +</html> diff --git a/htdocs/dev/tests/trailing-nul.html b/htdocs/dev/tests/trailing-nul.html Binary files differnew file mode 100755 index 0000000..a350f0a --- /dev/null +++ b/htdocs/dev/tests/trailing-nul.html diff --git a/htdocs/docs/devel.html b/htdocs/docs/devel.html index b28c1f7..b52aa04 100755 --- a/htdocs/docs/devel.html +++ b/htdocs/docs/devel.html @@ -1,9 +1,10 @@ -<!--#set var="revision" value="\$Id: devel.html,v 1.5 2002-02-11 22:09:10 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:10 $" +<!--#set var="revision" value="\$Id: devel.html,v 1.6 2002-08-20 01:51:24 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:24 $" --><!--#set var="title" value="Developer Documentation for The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="../" +--><!--#include virtual="../header.html" --> - <p> + <p id="skip"> The W3C HTML Validation Service consists of an SGML Parser, an SGML catalog, a CGI program and it's configuration files. In addition it relies on a moderately large set of Perl modules for it's operation. @@ -39,7 +40,7 @@ for the "check" CGI script. There is a bunch of lines that of the form "use Foo::Bar" where each "Foo::Bar" represents a module. Most modules can be found on <a href="http://www.cpan.org/">CPAN</a>. The following - list was complete when CVS spit out: <code>$Date: 2002-02-11 22:09:10 $</code>. <tt>:-)</tt> + list was complete when CVS spit out: <code>$Date: 2002-08-20 01:51:24 $</code>. <tt>:-)</tt> </p> <dl> <dt><code>LWP::UserAgent</code></dt> @@ -103,10 +104,11 @@ Maps MIME/HTTP Content-Types to an internal "document type" which is used for treating HTML, XML, and XHTML in different ways. </dd> - <dt>"check.cfg"</dt> + <dt>check.cfg</dt> <dd> - We don't have one yet, but we intend to. Maybe you'll write the - support for us? <tt>:-)</tt> + Main configuration file. Gives various parameters (such as the + address of the maintainer and the URL for the "Home Page") and + the locations of the other configuration files and mapping tables. </dd> </dl> </div> @@ -114,7 +116,7 @@ <h2>TODO</h2> <p> The TODO list for the Validator is online at - <URL:<a href="/todo.html">http://validator.w3.org/todo.html</a>>. + <URL:<a href="../todo.html">http://validator.w3.org/todo.html</a>>. This is probably the best place to start. </p> <p> @@ -131,6 +133,6 @@ </p> </div> -<!--#include virtual="/footer.html" --> +<!--#include virtual="../footer.html" --> </body> </html> diff --git a/htdocs/docs/errors.html b/htdocs/docs/errors.html index de2fcb5..5a47355 100755 --- a/htdocs/docs/errors.html +++ b/htdocs/docs/errors.html @@ -1,18 +1,19 @@ -<!--#set var="revision" value="\$Id: errors.html,v 1.17 2002-02-11 22:09:10 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:10 $" +<!--#set var="revision" value="\$Id: errors.html,v 1.18 2002-08-20 01:51:24 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:24 $" --><!--#set var="title" value="Error Explanations for The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="../" +--><!--#include virtual="../header.html" --> - <p> + <p id="skip"> These error explanations were originally written by Scott Bigham, they are used here with his permission. </p> <dl> - <dt><a id="undef-id" name="dup-id">"ID "FOO" already defined"</a></dt> + <dt><a id="undef-id" name="dup-id">“<code>ID ‘<var>FOO</var>’ already defined</code>”</a></dt> <dd> <p> - You have defined the id/name "FOO" more then once. You will also get + You have defined the id/name ‘<var>FOO</var>’ more then once. You will also get a message telling you where it was first defined. Be aware that this message may be the result of an ambiguity in the specification. While user-agents must treat values of the id attribute @@ -23,7 +24,7 @@ for further information. </p> </dd> - <dt><a id="unterm-comment-1" name="unterm-comment-1">"entity end not allowed in comment"</a></dt> + <dt><a id="unterm-comment-1" name="unterm-comment-1">“<code>entity end not allowed in comment</code>”</a></dt> <dd> <p> Unterminated comment. The position indicator points to the very end of @@ -32,7 +33,7 @@ `<code><!--</code>' in the document. </p> </dd> - <dt><a id="unterm-comment-2" name="unterm-comment-2">"name start character invalid: only s and comment allowed in comment declaration"</a></dt> + <dt><a id="unterm-comment-2" name="unterm-comment-2">“<code>name start character invalid: only s and comment allowed in comment declaration</code>”</a></dt> <dd> <p> Unterminated comments again. This time, you have a case like: @@ -48,7 +49,7 @@ allowed. </p> </dd> - <dt><a id="bad-comment" name="bad-comment">"unknown declaration type `FOO'"</a></dt> + <dt><a id="bad-comment" name="bad-comment">“<code>unknown declaration type ‘<var>FOO</var>’</code>”</a></dt> <dd> <p> Most likely an invalid comment of the form <code><!invalid @@ -57,7 +58,7 @@ declaration. </p> </dd> - <dt><a id="attr-quoted" name="attr-quoted">"an attribute value must be a literal unless it contains only name characters"</a></dt> + <dt><a id="attr-quoted" name="attr-quoted">“<code>an attribute value must be a literal unless it contains only name characters</code>”</a></dt> <dd> <p> You have an attribute whose value needs to be in quotes. If an @@ -67,7 +68,7 @@ standpoint, but some browsers don't recognize them). </p> </dd> - <dt><a id="attr-char" name="attr-char">"character `X' not allowed in attribute specification list"</a></dt> + <dt><a id="attr-char" name="attr-char">“<code>character `X' not allowed in attribute specification list</code>”</a></dt> <dd> <p> The validator has found a character inside an HTML tag that isn't @@ -93,7 +94,7 @@ quote. </p> </dd> - <dt><a id="name-length" name="name-length">"length of attribute value must not exceed LITLEN less NORMSEP (1022)"</a></dt> + <dt><a id="name-length" name="name-length">“<code>length of attribute value must not exceed LITLEN less NORMSEP (1022)</code>”</a></dt> <dd> <p> This usually occurs in conjunction with the @@ -115,10 +116,10 @@ this case, the <code>"joe.gif"</code> line. </p> </dd> - <dt><a id="undef-tag" name="undef-tag">"element `FOO' undefined"</a></dt> + <dt><a id="undef-tag" name="undef-tag">“<code>element ‘<var>FOO</var>’ undefined</code>”</a></dt> <dd> <p> - You've used an unknown tag (represented here by FOO). Make sure the + You've used an unknown tag (represented here by ‘<var>FOO</var>’). Make sure the DTD indicated by your DOCTYPE actually includes this element. </p> <p> @@ -127,7 +128,7 @@ and friends) you must use the "Transitional" DTD. </p> </dd> - <dt><a id="not-allowed" name="not-allowed">"document type does not allow element "FOO" here"</a></dt> + <dt><a id="not-allowed" name="not-allowed">“<code>document type does not allow element ‘<var>FOO</var>’ here</code>”</a></dt> <dd> <p> Straightforward, but not terribly informative. There are a @@ -137,7 +138,7 @@ <ul> <li> Using an unknown tag. In this case, the next error will be - <a href="#undef-tag">"element `FOO' undefined"</a>. + <a href="#undef-tag">“element ‘<var>FOO</var>’ undefined"</a>. </li> <li> Using a tag in the wrong place. For instance, @@ -150,12 +151,12 @@ </li> </ul> </dd> - <dt><a id="not-contained" name="not-contained">document type does not allow element "FOO" here; assuming missing "BAR" start-tag</a></dt> + <dt><a id="not-contained" name="not-contained">“document type does not allow element ‘<var>FOO</var>’ here; assuming missing ‘<var>BAR</var>’ start-tag</a>’</dt> <dd> <p> Similar to the <a href="#not-allowed">previous error</a>, but more - specific: in this case, you have a FOO element that is not contained - in a BAR element when FOO is not allowed outside of BAR. Some of the + specific: in this case, you have a ‘<var>FOO</var>’ element that is not contained + in a ‘<var>BAR</var>’ element when ‘<var>FOO</var>’ is not allowed outside of ‘<var>BAR</var>’. Some of the most common causes of this error are: </p> <ul> @@ -195,12 +196,12 @@ </li> </ul> <p> - The validator has inserted a BAR start tag where it thinks there needs + The validator has inserted a ‘<var>BAR</var>’ start tag where it thinks there needs to be one; it will probably complain later on that <a href="#no-end-tag">the corresponding end tag is also missing</a>. </p> </dd> - <dt><a id="attr-undef" name="attr-undef">"there is no attribute `FOO' for this element (in this HTML version)"</a></dt> + <dt><a id="attr-undef" name="attr-undef">“<code>there is no attribute ‘<var>FOO</var>’ for this element (in this HTML version)</code>”</a></dt> <dd> <p> You have used an attribute with an element that is defined not to have @@ -209,7 +210,7 @@ appropriately. </p> </dd> - <dt><a id="undef-attr-val" name="undef-attr-val">"`FOO' is not a member of the group specified in the declared value of this attribute"</a></dt> + <dt><a id="undef-attr-val" name="undef-attr-val">“<code>‘<var>FOO</var>’ is not a member of the group specified in the declared value of this attribute</code>”</a></dt> <dd> <p> Similar to the <a href="#attr-undef">previous error</a>; this time, @@ -237,7 +238,7 @@ JOE.GIF as an attribute of <code><IMG></code>. </p> </dd> - <dt><a id="bad-attr-char" name="bad-attr-char">"syntax of attribute value does not conform to declared value"</a></dt> + <dt><a id="bad-attr-char" name="bad-attr-char">“<code>syntax of attribute value does not conform to declared value</code>”</a></dt> <dd> <p> Yet another attribute error; this time, the attribute in question was @@ -252,7 +253,7 @@ which means that <code><TD WIDTH="50%"></code> is not allowed. </p> </dd> - <dt><a id="attr-bad-name" name="attr-bad-name">"value of attribute "FOO" invalid: "#" cannot start a name"</a></dt> + <dt><a id="attr-bad-name" name="attr-bad-name">“<code>value of attribute ‘<var>FOO</var>’ invalid: "#" cannot start a name</code>”</a></dt> <dd> <p> A special case of <a href="#bad-attr-char">the previous error</a>; the @@ -260,7 +261,7 @@ which must begin with a letter. </p> </dd> - <dt><a id="bad-abbrev-attr" name="bad-abbrev-attr">"`FOO' is not a member of a group specified for any attribute"</a></dt> + <dt><a id="bad-abbrev-attr" name="bad-abbrev-attr">“<code>‘<var>FOO</var>’ is not a member of a group specified for any attribute</code>”</a></dt> <dd> <p> Another attribute error, this time referring to an "abbreviated" @@ -283,7 +284,7 @@ error, referring to the "attribute value" <code>JOE.GIF</code>. </p> </dd> - <dt><a id="attr-missing" name="attr-missing">"required attribute `FOO' not specified"</a></dt> + <dt><a id="attr-missing" name="attr-missing">“<code>required attribute ‘<var>FOO</var>’ not specified</code>”</a></dt> <dd> <p> You left off a required attribute of the indicated element. The most @@ -294,18 +295,18 @@ meaningful value here. </p> </dd> - <dt><a id="no-end-tag" name="no-end-tag">"end tag for `FOO' omitted, but its declaration does not permit this"</a></dt> + <dt><a id="no-end-tag" name="no-end-tag">“<code>end tag for ‘<var>FOO</var>’ omitted, but its declaration does not permit this</code>”</a></dt> <dd> <p> - You forgot to close something. FOO is the element you forgot to close + You forgot to close something. ‘<var>FOO</var>’ is the element you forgot to close (and the next message, `start tag was here' points to the particular - instance of FOO in question); the positional indicator points to where + instance of ‘<var>FOO</var>’ in question); the positional indicator points to where the validator expected you to close the element. There are a few common ways that this can happen: </p> <ul> <li> - You've put something inside the FOO element that isn't allowed + You've put something inside the ‘<var>FOO</var>’ element that isn't allowed there. For instance, <code><UL><LI><H4>fake font change</H4></UL></code> will cause this error, since headers aren't allowed inside <code><UL></code>'s; the @@ -315,8 +316,8 @@ <li> Interlocked elements. For instance, <code><B><I>nope</B></I></code> will cause - this error. HTML requires that you close elements ``inside-out'' --- - that is, the last element you opened is the first element you should + this error. HTML requires that you close elements “inside-out” + — that is, the last element you opened is the first element you should close. In this example, you'd have to close the <code><I></code> before the <code><B></code>. </li> @@ -330,7 +331,7 @@ </li> <li> Having unadorned text where the validator was expecting a - sub-element of FOO. For instance, <code><DL>fake + sub-element of ‘<var>FOO</var>’. For instance, <code><DL>fake indent</DL></code> will produce this error, since inside a <code><DL></code>, the validator only expects to see <code><DT></code>'s and <code><DD></code>'s. @@ -355,10 +356,10 @@ quote all attribute values. </p> </dd> - <dt><a id="floating-close" name="floating-close">"end tag for element "FOO" which is not open"</a></dt> + <dt><a id="floating-close" name="floating-close">“<code>end tag for element ‘<var>FOO</var>’ which is not open</code>”</a></dt> <dd> <p> - The validator found an end tag, represented here by FOO, without a + The validator found an end tag, represented here by ‘<var>FOO</var>’, without a corresponding start tag. This frequently occurs in conjunction with the <a href="#no-end-tag">previous error</a>. For instance, given <code><B><I>nope</B></I></code>, the validator @@ -382,24 +383,24 @@ or <code><IMG></code>. </p> </dd> - <dt><a id="omitted-content" name="omitted-content">"end tag for `FOO' which is not finished"</a></dt> + <dt><a id="omitted-content" name="omitted-content">“<code>end tag for ‘<var>FOO</var>’ which is not finished</code>”</a></dt> <dd> <p> - You have a FOO element, but you have omitted some required sub-element + You have a ‘<var>FOO</var>’ element, but you have omitted some required sub-element of it. For instance, a <code>TABLE</code> with no <code>TR</code>'s would cause this error. </p> </dd> - <dt><a id="no-start-tag" name="no-start-tag">"start tag for `FOO' omitted, but its declaration does not permit this"</a></dt> + <dt><a id="no-start-tag" name="no-start-tag">“<code>start tag for ‘<var>FOO</var>’ omitted, but its declaration does not permit this</code>”</a></dt> <dd> <p> - The validator expected you to start a FOO element at the indicated + The validator expected you to start a ‘<var>FOO</var>’ element at the indicated point. This probably means you've put unadorned text somewhere it isn't allowed; for instance, <code><UL>fake indent</UL></code> will cause this error. </p> </dd> - <dt><a id="bad-entity" name="bad-entity">"unknown entity `FOO'"</a></dt> + <dt><a id="bad-entity" name="bad-entity">“<code>unknown entity ‘<var>FOO</var>’</code>”</a></dt> <dd> <p> The validator has found an entity (something like @@ -445,7 +446,7 @@ </li> </ul> </dd> - <dt><a id="bad-char" name="bad-char">"non SGML character number ###"</a></dt> + <dt><a id="bad-char" name="bad-char">“<code>non SGML character number ###</code>”</a></dt> <dd> <p> You've used an illegal character in your text. HTML uses the standard @@ -474,7 +475,7 @@ command to save the document without formatting information. </p> </dd> - <dt><a id="unicode-char" name="unicode-char">"`####' is not a valid character number"</a></dt> + <dt><a id="unicode-char" name="unicode-char">“<code>`####' is not a valid character number</code>”</a></dt> <dd> <p> You'll get several occurrences of this error if you use the Cougar @@ -493,7 +494,7 @@ pretty much ignore them. </p> </dd> - <dt><a id="bad-pub-id" name="bad-pub-id">"cannot generate system identifier for entity `HTML'"</a></dt> + <dt><a id="bad-pub-id" name="bad-pub-id">“<code>cannot generate system identifier for entity `HTML'</code>”</a></dt> <dd> <p> Your <code>DOCTYPE</code> declaration contains a public identifier @@ -508,22 +509,22 @@ work from, and thus could not validate your document. </p> </dd> - <dt><a id="missing-subel" name="missing-subel">"missing a required sub-element of `FOO'"</a></dt> + <dt><a id="missing-subel" name="missing-subel">“<code>missing a required sub-element of ‘<var>FOO</var>’</code>”</a></dt> <dd> <p> - The element "FOO" is defined to <em>require</em> one or more + The element ‘<var>FOO</var>’ is defined to <em>require</em> one or more sub-elements. One example is TR which requires one or more TD or TH elements. </p> </dd> - <dt><a id="start-tag" name="start-tag">"start tag was here"</a></dt> + <dt><a id="start-tag" name="start-tag">“<code>start tag was here</code>”</a></dt> <dd> <p> Not an error, but rather a pointer to the start tag of the element the previous error referred to. </p> </dd> - <dt><a id="utf8-bom" name="utf8-bom">"UTF-8 'BOM' detected and removed"</a></dt> + <dt><a id="utf8-bom" name="utf8-bom">“<code>UTF-8 'BOM' detected and removed</code>”</a></dt> <dd> <p> The document contained an UTF-8 encoded Unicode Byte Order Mark (BOM) @@ -537,7 +538,7 @@ is required and handled by all conforming XML Processors. </p> </dd> - <dt><a id="text-not-allowed" name="text-not-allowed">" text is not allowed here; try wrapping the text in a more descriptive container"</a></dt> + <dt><a id="text-not-allowed" name="text-not-allowed">“<code> text is not allowed here; try wrapping the text in a more descriptive container</code>”</a></dt> <dd> <p> The document contained bare text where an element was expected. @@ -551,7 +552,7 @@ appears to be plain text, outside any element, to an SGML parser. </p> </dd> - <dt><a id="unkn-att-val" name="unkn-att-val">" value of attribute "FOO" cannot be "BAR"; must be one of "FOO", "BAR", "BAZ""</a></dt> + <dt><a id="unkn-att-val" name="unkn-att-val">“<code> value of attribute ‘<var>FOO</var>’ cannot be ‘<var>BAR</var>’; must be one of ‘<var>FOO</var>’, ‘<var>BAR</var>’, ‘<var>BAZ</var>’</code>”</a></dt> <dd> <p> An attribute was specified to contain one of a set of predefined @@ -560,7 +561,7 @@ legal values for this attribute. </p> </dd> - <dt><a id="no-attr-end" name="no-attr-end">"character FOO not allowed in attribute specification list possibly caused by a missing quotation mark ending a previous attribute value"</a></dt> + <dt><a id="no-attr-end" name="no-attr-end">“<code>character ‘<var>FOO</var>’ not allowed in attribute specification list possibly caused by a missing quotation mark ending a previous attribute value</code>”</a></dt> <dd> <p> A character that is illegal in the attribute list for a particular @@ -568,7 +569,7 @@ a missing quote character on a previous attribute value. </p> </dd> - <dt><a id="dup-attr" name="dup-attr">"duplicate specification of attribute "FOO""</a></dt> + <dt><a id="dup-attr" name="dup-attr">“<code>duplicate specification of attribute ‘<var>FOO</var>’</code>”</a></dt> <dd> <p> You have specified an attribute more than once. For instance, you've @@ -576,7 +577,7 @@ "img" tag. </p> </dd> - <dt><a id="invalid-attr-val" name="invalid-attr-val">"invalid attribute value"</a></dt> + <dt><a id="invalid-attr-val" name="invalid-attr-val">“<code>invalid attribute value</code>”</a></dt> <dd> <p> The value of this attribute is not a legal value for attributes. For @@ -584,7 +585,7 @@ from errors related to illegal values for a specific attribute. </p> </dd> - <dt><a id="attr-spec-nmtoken" name="attr-spec-nmtoken">"an attribute specification must start with a name or name token"</a></dt> + <dt><a id="attr-spec-nmtoken" name="attr-spec-nmtoken">“<code>an attribute specification must start with a name or name token</code>”</a></dt> <dd> <p> An attribute name (and some attribute values) must start with one of @@ -595,7 +596,7 @@ (usually a typo in a common attribute name). </p> </dd> - <dt><a id="inval-comment" name="inval-comment">"invalid comment declaration; check your comment syntax"</a></dt> + <dt><a id="inval-comment" name="inval-comment">“<code>invalid comment declaration; check your comment syntax</code>”</a></dt> <dd> <p> There is a syntax error in an SGML Comment Declaration. This may be @@ -604,12 +605,12 @@ "comment declaration started here". </p> </dd> - <dt><a id="assuming-missing-starttag" name="assuming-missing-starttag">"element "FOO" not allowed here; assuming missing "BAR" start-tag"</a></dt> + <dt><a id="assuming-missing-starttag" name="assuming-missing-starttag">“<code>element ‘<var>FOO</var>’ not allowed here; assuming missing ‘<var>BAR</var>’ start-tag</code>”</a></dt> <dd> <p> - The referenced element "FOO" isn't allowed in the context it occurs - in, but it would be if it was wrapped in a "BAR" element. The - Validator has assumed that you have forgotten to add a "BAR" + The referenced element ‘<var>FOO</var>’ isn't allowed in the context it occurs + in, but it would be if it was wrapped in a ‘<var>BAR</var>’ element. The + Validator has assumed that you have forgotten to add a ‘<var>BAR</var>’ starttag and continued validation as if it was there. You should check if this is the case and insert the proper tag. </p> @@ -620,9 +621,9 @@ <p> </p> </dd> - </dl> --> + </dl> -<!--#include virtual="/footer.html" --> +<!--#include virtual="../footer.html" --> </body> </html> diff --git a/htdocs/docs/help.html b/htdocs/docs/help.html index 45da9f5..681d6bf 100755 --- a/htdocs/docs/help.html +++ b/htdocs/docs/help.html @@ -1,9 +1,10 @@ -<!--#set var="revision" value="\$Id: help.html,v 1.5 2002-02-11 22:09:10 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:10 $" +<!--#set var="revision" value="\$Id: help.html,v 1.6 2002-08-20 01:51:24 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:24 $" --><!--#set var="title" value="Help for The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="../" +--><!--#include virtual="../header.html" --> - <div> + <div id="skip"> <h2 id="what-is-it">What does The Validator do?</h2> The Validator is sort of like <code>lint</code> for C. It compares your HTML document to the defined syntax of HTML and reports any @@ -72,6 +73,6 @@ </p> </div> -<!--#include virtual="/footer.html" --> +<!--#include virtual="../footer.html" --> </body> </html> diff --git a/htdocs/docs/index.html b/htdocs/docs/index.html index fa2b522..bafb755 100755 --- a/htdocs/docs/index.html +++ b/htdocs/docs/index.html @@ -1,9 +1,10 @@ -<!--#set var="revision" value="\$Id: index.html,v 1.5 2002-02-11 22:09:10 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:10 $" +<!--#set var="revision" value="\$Id: index.html,v 1.6 2002-08-20 01:51:24 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:24 $" --><!--#set var="title" value="Documentation Index for The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="../" +--><!--#include virtual="../header.html" --> - <p> + <p id="skip"> Here you'll find the documentation for The W3C HTML Validation Service. What little there is of it; additions eagerly accepted! <tt>:-)</tt> </p> @@ -25,6 +26,6 @@ <dd><p>Information about the Validator for programmers.</p></dd> </dl> -<!--#include virtual="/footer.html" --> +<!--#include virtual="../footer.html" --> </body> </html> diff --git a/htdocs/docs/sgml.html b/htdocs/docs/sgml.html index 22b4dc3..fa85ee1 100755 --- a/htdocs/docs/sgml.html +++ b/htdocs/docs/sgml.html @@ -1,8 +1,9 @@ -<!--#set var="revision" value="\$Id: sgml.html,v 1.8 2002-02-11 22:09:10 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:10 $" +<!--#set var="revision" value="\$Id: sgml.html,v 1.9 2002-08-20 01:51:24 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:24 $" --><!--#set var="title" value="Introduction To SGML for The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> - <div> +--><!--#set var="relroot" value="../" +--><!--#include virtual="../header.html" --> + <div id="skip"> <h2 id="sgml">What is SGML?</h2> <p> SGML stands for Standard Generalized Markup Language. This is @@ -72,7 +73,7 @@ correct public identifier; otherwise, The Validator will use the wrong DTD, or will be unable to find a DTD at all, and will produce a huge list of absolutely meaningless errors. The Validator's - <a href="/sgml-lib/catalog">public identifier catalog</a> lists all the public + <a href="../sgml-lib/catalog">public identifier catalog</a> lists all the public identifiers The Validator recognizes for various types of HTML; of those, the following public identifiers are most likely to be widely recognized: @@ -95,7 +96,7 @@ The Validator. </p> </div> -<!--#include virtual="/footer.html" --> +<!--#include virtual="../footer.html" --> </body> </html> diff --git a/htdocs/docs/users.html b/htdocs/docs/users.html index 31d5c2a..0479887 100755 --- a/htdocs/docs/users.html +++ b/htdocs/docs/users.html @@ -1,10 +1,11 @@ -<!--#set var="revision" value="\$Id: users.html,v 1.5 2002-02-11 22:09:10 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:10 $" +<!--#set var="revision" value="\$Id: users.html,v 1.6 2002-08-20 01:51:24 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:24 $" --><!--#set var="title" value="User Documentation for The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="../" +--><!--#include virtual="../header.html" --> <div id="Quickstart"> - <h2>QuickStart</h2> + <h2 id="skip">QuickStart</h2> <p> Just type (or Cut&Paste) the URL for the page you want to validate into the text field on the form and press the "Validate this page" @@ -142,6 +143,6 @@ </p> </div> -<!--#include virtual="/footer.html" --> +<!--#include virtual="../footer.html" --> </body> </html> diff --git a/htdocs/docs/why.html b/htdocs/docs/why.html index d1973a0..672aeaf 100755 --- a/htdocs/docs/why.html +++ b/htdocs/docs/why.html @@ -1,7 +1,8 @@ -<!--#set var="revision" value="\$Id: why.html,v 1.3 2002-02-11 22:09:10 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:10 $" +<!--#set var="revision" value="\$Id: why.html,v 1.4 2002-08-20 01:51:24 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:24 $" --><!--#set var="title" value="Why Validate?" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="../" +--><!--#include virtual="../header.html" --> <div id="skip" class="colophon"> <h2>Why Validate?</h2> <p> @@ -132,6 +133,6 @@ </dd> </dl> </div> -<!--#include virtual="/footer.html" --> +<!--#include virtual="../footer.html" --> </body> </html> diff --git a/htdocs/favlets.html b/htdocs/favlets.html new file mode 100755 index 0000000..4e76ea6 --- /dev/null +++ b/htdocs/favlets.html @@ -0,0 +1,122 @@ +<!--#set var="revision" value="\$Id: favlets.html,v 1.2 2002-08-20 01:51:22 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:22 $" +--><!--#set var="title" value="Favlets For The W3C HTML Validation Service" +--><!--#set var="relroot" value="./" +--><!--#include virtual="header.html" --> + + <script type="text/javascript"> +<!-- + var xmlhttp + /*@cc_on @*/ + /*@if (@_jscript_version >= 5) + try { + xmlhttp=new ActiveXObject("Msxml2.XMLHTTP") + } catch (e) { + try { + xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") + } catch (E) { + xmlhttp=false + } + } + @else + xmlhttp=false + @end @*/ + if (!xmlhttp) { + try { + xmlhttp = new XMLHttpRequest() + } catch (e) { + xmlhttp=false + } + } + if (xmlhttp && location.hash && location.hash.substr) { + var hsh=location.hash.substr(1) + if (hsh.indexOf('http://')==0) { + url="http://validator.w3.org:8001/check?uri="+hsh+";output=xml"; + xmlhttp.open("HEAD",url,true); + xmlhttp.onreadystatechange=function() { + if (xmlhttp.readyState==4) { + alert(hsh+' is '+xmlhttp.getResponseHeader('X-W3C-Validator-Status')+'\nErrors: '+xmlhttp.getResponseHeader('X-W3C-Validator-Errors')); + } + } + xmlhttp.setRequestHeader('User-Agent','Validator+Favlet'); + xmlhttp.send("") + } + } +// --> + </script> + + <div id="skip"> + <h2><a href="http://Favlets.com/">Favlets</a> + For The Validator</h2> + <div class="intro"> + <p> + Favlets are small snippets of JavaScript embedded in a Bookmark + <acronym title="Universal Resource Identifier">URL</acronym> + that allows Bookmarks in browsers do various advanced things. + Popular Favlets include variants that prompts the user for a + phrase and searches the web for that phrase, or that finds older + versions of the currently viewed page in the + <a class="offsite" title="The Internet Archive WayBack Machine" + href="http://www.archive.org/">WayBack Machine</a>. + </p> + <p> + Favlets depend on support for <code>javascript:</code> + <acronym title="Universal Resource Identifiers">URLs</acronym> + in your browser's Bookmarks feature, and each Favlet may depend on + support for a specific part of the JavaScript specification to work + properly. <acronym title="Microsoft Internet Explorer">MSIE</acronym> + versions more recent then 5.0, and Mozilla 1.0 and later — this + includes browsers using the embedded version of Mozilla, such as + Netscape 7.0 — are known to support most Favlets. + <acronym title="Microsoft Internet Explorer for Mac OS">MSIE:mac</acronym> + supports basic Favlets, but it's general support for JavaScript + may render certain advanced Favlets inoperable. Netscape 4.x is + a lost cause in this regard, and with it's poor support for standards + in general it is probably better to avoid it alltogether. + </p> + </div> + <div> + <dl> + <dt>"<a href="javascript:void(location='http://validator.w3.org/check?uri='+location)" + title="Validate This Page">Validate <em>This</em> Page</a>"</dt> + <dd> + This is the basic "Validate This Page" Favlet. + It simply submits the URL for the currently viewed page to the + Validator for processing. Results appear in the same window. + </dd> + <dt>"Validate <em>This</em> Page In New Window"</dt> + <dd> + Like the last Favlet, this also submits the URL of the current + page to the Validator for processing, but this version will show + the results in a new window. + </dd> + <dt>"<a href="javascript:void(q=prompt('Validate Page:',''));if(q)void(location='http://validator.w3.org/check?uri='+escape(q))" + title="Validate Page...">Validate Page...</a>"</dt> + <dd> + Puts up a dialog with a text entry field where you can type in the + URL of a page you would like to Validate. The results appear in the + current window. + </dd> + <dt>"Validate Page In New Window..."</dt> + <dd>Same as above but shows results in a new window.</dd> + <dt>"<a href="javascript:_is=document.createElement('iframe');_is.setAttribute('src','http://validator.w3.org:8001/favlets.html#'+location.href);_is.setAttribute('height','0');_is.setAttribute('width','0');_is.setAttribute('style','border:0;');document.body.appendChild(_is);void 0" + title="Is This Page Valid?">Is <em>This</em> Page Valid?</a>"</dt> + <dd> + From the Head Of The "JavaScript Juju" Department, + <a href="http://jibbering.com/">Jim Ley</a>, comes this gem. + When invoked, this Favlet will submit the + <acronym title="Universal Resource Identifier">URL</acronym> + for the current page to the Validator for processing and pop up + a dialog that shows whether the page is Valid and how many errors + where found in the page. As with all Jim does, this Black Magic is + so deep I'm <em>afraid</em> to ask him how it works. + <q>Here There Be Dragons!</q> + </dd> + </dl> + </div> + </div> + +<!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/feedback.html b/htdocs/feedback.html index b8f65c5..3355eb2 100755 --- a/htdocs/feedback.html +++ b/htdocs/feedback.html @@ -1,31 +1,38 @@ -<!--#set var="revision" value="\$Id: feedback.html,v 1.13 2002-02-11 22:09:09 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:09 $" +<!--#set var="revision" value="\$Id: feedback.html,v 1.14 2002-08-20 01:51:23 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:23 $" --><!--#set var="title" value="How To Provide Feedback for The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="./" +--><!--#include virtual="header.html" --> -<h2>How to Provide Feedback</h2> +<h2 id="skip">How to Provide Feedback</h2> <dl> <dt>If your page doesn't validate, and you don't know why, or - you have a question about HTML or validation</dt> + you have a question about + <acronym title="HyperText Markup Language">HTML</acronym> + or validation</dt> <dd> <p> First, check the <strong><a href="http://www.htmlhelp.com/faq/">Web - authoring frequently asked questions (FAQs)</a></strong> to see if - your question has been answered there. + authoring frequently asked questions + (<acronym title="Frequently Asked Questions">FAQ</acronym>)</a></strong> + to see if your question has been answered there. </p> <p> The two most common problems are: </p> <ul> - <li>Validating pages with &'s in <code>URI</code>s: + <li>Validating pages with &'s in <acronym + title="Universal Resource Identifiers">URIs</acronym>: see <a href="http://www.htmlhelp.com/tools/validator/problems.html#amp">Ampersands - (&'s) in URLs</a></li> + (&'s) in <acronym + title="Universal Resource Identifiers">URLs</acronym></a></li> <li>Validating pages with JavaScript: - see <a + see <a href="http://www.htmlhelp.com/tools/validator/problems.html#script">Writing - HTML in a SCRIPT Element</a></li> + <acronym title="HyperText Markup Language">HTML</acronym> + in a <code>SCRIPT</code> Element</a></li> </ul> <p> @@ -36,15 +43,19 @@ <ul> <li><code><a href="news:comp.infosystems.www.authoring.html">Usenet newsgroup: comp.infosystems.www.authoring.html</a></code></li> - <li><a href="http://www.hwg.org/">HTML Writers Guild</a> <a - title="HTML Writers Guild Mailing Lists" - href="http://www.hwg.org/lists/">mailing lists</a></li> + <li><a href="http://www.hwg.org/"><acronym + title="HyperText Markup Language">HTML</acronym> Writers Guild</a> + <a title="HTML Writers Guild Mailing Lists" + href="http://www.hwg.org/lists/">mailing lists</a></li> </ul> <p> - Each of these forums have plenty of experienced HTML authors who - are willing to share their expertise. (If you are commenting on a - specific page, be sure to provide a URL when you ask your question!) + Each of these forums have plenty of experienced <acronym + title="HyperText Markup Language">HTML</acronym> + authors who are willing to share their expertise. (If you are + commenting on a specific page, be sure to provide a + <acronym title="Universal Resource Locator">URL</acronym> + when you ask your question!) </p> </dd> @@ -65,7 +76,7 @@ </dd> </dl> -<!--#include virtual="/footer.html" --> +<!--#include virtual="footer.html" --> </body> </html> diff --git a/htdocs/file-upload.html b/htdocs/file-upload.html index 8413b98..cf04b73 100755 --- a/htdocs/file-upload.html +++ b/htdocs/file-upload.html @@ -1,17 +1,18 @@ -<!--#set var="revision" value="\$Id: file-upload.html,v 1.9 2002-02-11 22:09:09 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:09 $" +<!--#set var="revision" value="\$Id: file-upload.html,v 1.10 2002-08-20 01:51:23 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:23 $" --><!--#set var="title" value="About the W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="./" +--><!--#include virtual="header.html" --> - <p> + <p id="skip"> This form allows you to upload files from your computer and have them validated. </p> <div> <h2>Validate Uploaded File</h2> - <form method="post" enctype="multipart/form-data" action="/check"> + <form method="post" enctype="multipart/form-data" action="check"> <table> - <tr><th><label for="uploaded_file">File:</label></th><td colspan="2"><input type="file" name="uploaded_file" size="50" /></td></tr> + <tr><th><label for="uploaded_file">File:</label></th><td colspan="2"><input type="file" id="uploaded_file" name="uploaded_file" size="50" /></td></tr> <tr> <th><label for="charset">Character Encoding:</label></th> <td colspan="2"> @@ -92,6 +93,6 @@ </p> -<!--#include virtual="/footer.html" --> +<!--#include virtual="footer.html" --> </body> </html> diff --git a/htdocs/footer.html b/htdocs/footer.html index ff208c3..d864a28 100755 --- a/htdocs/footer.html +++ b/htdocs/footer.html @@ -1,9 +1,9 @@ <address> <a href="http://validator.w3.org/check/referer"><img - src="http://validator.w3.org/images/vxhtml10" height="31" width="88" + src="http://www.w3.org/Icons/valid-xhtml10" height="31" width="88" alt="Valid XHTML 1.0!" /></a> - <a title="Send Feedback for the W3C HTMl Validation Service" - href="/feedback.html">Gerald Oskoboiny</a><br /> + <a title="Send Feedback for the W3C HTML Validation Service" + href="<!--#echo var="relroot" -->feedback.html">Gerald Oskoboiny</a><br /> <!--#echo var="date" --> - <!-- SSI Template Version: $Id: footer.html,v 1.2 2001-09-24 10:05:41 link Exp $ --> + <!-- SSI Template Version: $Id: footer.html,v 1.3 2002-08-20 01:51:23 link Exp $ --> </address> diff --git a/htdocs/fragment-upload.html b/htdocs/fragment-upload.html index 4b488b2..6ba57aa 100755 --- a/htdocs/fragment-upload.html +++ b/htdocs/fragment-upload.html @@ -9,7 +9,7 @@ W3C HTML Validation Service" /> <meta name="description" content="W3C's easy-to-use HTML validation service, based on an SGML parser." /> - <meta name="revision" content="$Id: fragment-upload.html,v 1.3 2001-04-19 02:43:02 link Exp $" /> + <meta name="revision" content="$Id: fragment-upload.html,v 1.4 2002-08-20 01:51:23 link Exp $" /> </head> <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b"> @@ -18,7 +18,7 @@ alt="W3C" /></a>HTML Validation Service</h1> <p align="right" class="navbar"> - <a href="/">Validator home</a> | + <a href="./">Validator home</a> | <a href="about.html">About this service</a> | <a href="feedback.html">Feedback</a><br clear="all" /> </p> @@ -70,7 +70,7 @@ <p> If your document is on the Web, you can validate - it by <a href="/">entering its address</a> instead. + it by <a href="./">entering its address</a> instead. </p> <hr /> @@ -79,8 +79,8 @@ <a href="http://validator.w3.org/check/referer"><img src="http://validator.w3.org/images/vxhtml10" height="31" width="88" align="right" border="0" alt="Valid XHTML 1.0!" /></a> - <a href="/feedback.html">Gerald Oskoboiny</a><br /> - $Date: 2001-04-19 02:43:02 $ + <a href="feedback.html">Gerald Oskoboiny</a><br /> + $Date: 2002-08-20 01:51:23 $ </address> </body> diff --git a/htdocs/header.html b/htdocs/header.html index 0df8bc5..bb946d6 100755 --- a/htdocs/header.html +++ b/htdocs/header.html @@ -1,49 +1,59 @@ <!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"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title><!--#echo var="title" --></title> <link rev="made" href="mailto:gerald@w3.org" /> - <link rev="start" href="/" title="Home Page" /> - <style type="text/css" media="screen">@import "/base.css";</style> + <link rev="start" href="<!--#echo var="relroot" -->" title="Home Page" /> + <style type="text/css" media="screen">@import "<!--#echo var="relroot" -->base.css";</style> <meta name="keywords" content="HTML, Hypertext Markup Language, Validation, W3C HTML Validation Service" /> <meta name="description" content="W3C's easy-to-use HTML validation service, based on an SGML parser." /> <meta name="revision" content="<!--#echo var="revision" -->" /> - <!-- SSI Template Version: $Id: header.html,v 1.9 2001-10-20 10:19:39 link Exp $ --> + <!-- SSI Template Version: $Id: header.html,v 1.10 2002-08-20 01:51:23 link Exp $ --> </head> <body> - <div> - <p class="navbar"> - <span class="hideme"><a href="#title" title="Skip past navigation to main part of page">Skip Navigation</a> |</span> - <a href="/" title="Go to the Home Page for The W3C HTML Validation Service">[ Home Page ]</a> <span class="hideme">|</span> - <a href="/docs/" title="Documentation for this Service">Documentation</a> <span class="hideme">|</span> - <a href="/source/" title="Information on Source Availability">Source Code</a> <span class="hideme">|</span> - <a href="/whatsnew.html" title="The changes made to this service recently">What's New</a> <span class="hideme">|</span> - <a href="/feedback.html" title="How to provide feedback on this service">Feedback</a> <span class="hideme">|</span> - <a href="/about.html" title="Information About this Service">About...</a> <span class="hideme">|</span> + <h1 id="title"><a href="http://www.w3.org/"><img height="48" alt="W3C" + id="logo" src="http://www.w3.org/Icons/WWW/w3c_home" /></a> + <acronym title="HyperText Markup Language">HTML</acronym> + Validation Service</h1> + <div class="navbar"> + <p class="main"> + <span class="hideme"><a href="#skip" accesskey="s" title="Skip past navigation to main part of page">Skip Navigation</a> |</span> + <a href="<!--#echo var="relroot" -->" accesskey="h" title="Go to the Home Page for The W3C HTML Validation Service">Home Page</a> <span class="hideme">|</span> + <a href="<!--#echo var="relroot" -->docs/" title="Documentation for this Service">Documentation</a> <span class="hideme">|</span> + <a href="<!--#echo var="relroot" -->source/" title="Information on Source Availability">Source Code</a> <span class="hideme">|</span> + <a href="<!--#echo var="relroot" -->whatsnew.html" title="The changes made to this service recently">What's New</a> <span class="hideme">|</span> + <a href="<!--#echo var="relroot" -->accesskeys.html" accesskey="k" title="Accesskey Legend for the Validator Service">Accesskeys</a> <span class="hideme">|</span> + <a href="<!--#echo var="relroot" -->feedback.html" title="How to provide feedback on this service">Feedback</a> <span class="hideme">|</span> + <a href="<!--#echo var="relroot" -->about.html" title="Information About this Service">About...</a> <span class="hideme">|</span> </p> - <p class="navbar"> - <a href="http://jigsaw.w3.org/css-validator/" class="offsite" title="The W3C CSS Validator">CSS Validator</a> <span class="hideme">|</span> - <a href="/checklink" class="offsite" title="The W3C Link Checker">Link Checker</a> <span class="hideme">|</span> - <a href="http://www.w3.org/People/Raggett/tidy/" class="offsite" title="The HTML Tidy Home Page">HTML Tidy</a> <span class="hideme">|</span> - <a href="http://www.cast.org/bobby/" class="offsite" title="The Bobby Accesibility Checker">Bobby Online</a> <span class="hideme">|</span> + <p class="none"> + <a href="http://valet.webthing.com/" class="offsite" title="The Site Valet QA Tools">Site Valet</a> <span class="hideme">|</span> + <a href="http://www.htmlhelp.com/tools/validator/" class="offsite" title="The WDG HTML Validator"><acronym title="Web Design Group">WDG</acronym> Validator</a> <span class="hideme">|</span> + <a href="http://jigsaw.w3.org/css-validator/" class="offsite" title="The W3C CSS Validator"><acronym title="Cascading Style Sheets">CSS</acronym> Validator</a> <span class="hideme">|</span> + <a href="<!--#echo var="relroot" -->checklink" class="offsite" title="The W3C Link Checker">Link Checker</a> <span class="hideme">|</span> + <a href="http://www.w3.org/People/Raggett/tidy/" class="offsite" title="The HTML Tidy Home Page"><acronym title="HyperText Markup Language">HTML</acronym> Tidy</a> <span class="hideme">|</span> </p> - <p class="navbar"> - <a href="http://www.w3.org/MarkUp/" class="offsite" title="The W3C HTML Home Page">HTML Home</a> <span class="hideme">|</span> - <a href="http://www.w3.org/TR/xhtml11/" class="offsite" title="The XHTML 1.1 Recommendation">XHTML 1.1</a> <span class="hideme">|</span> - <a href="http://www.w3.org/TR/xhtml1/" class="offsite" title="The XHTML 1.0 Recommendation">XHTML 1.0</a> <span class="hideme">|</span> - <a href="http://www.w3.org/TR/html401/" class="offsite" title="The HTML 4.01 Recommendation">HTML 4.01</a> <span class="hideme">|</span> + <p class="none"> + <a href="http://www.w3.org/TR/xhtml11/" class="offsite" title="The XHTML 1.1 Recommendation"><acronym title="eXtensible HyperText Markup Language">XHTML</acronym> 1.1</a> <span class="hideme">|</span> + <a href="http://www.w3.org/TR/xhtml1/" class="offsite" title="The XHTML 1.0 Recommendation"><acronym title="eXtensible HyperText Markup Language">XHTML</acronym> 1.0</a> <span class="hideme">|</span> + <a href="http://www.w3.org/TR/html401/" class="offsite" title="The HTML 4.01 Recommendation"><acronym title="HyperText Markup Language">HTML</acronym> 4.01</a> <span class="hideme">|</span> </p> - <p class="navbar"> - <a href="http://www.w3.org/Style/" class="offsite" title="The W3C Style Home Page">Style Home</a> <span class="hideme">|</span> - <a href="http://www.w3.org/TR/xsl/" class="offsite" title="The XSL 1.0 Proposed Recommendation">XSL 1.0</a> <span class="hideme">|</span> - <a href="http://www.w3.org/TR/REC-CSS1" class="offsite" title="The CSS Level 1 Recommendation">CSS Level 1</a> <span class="hideme">|</span> - <a href="http://www.w3.org/TR/REC-CSS2" class="offsite" title="The CSS Level 2 Recommendation">CSS Level 2</a> <span class="hideme">|</span> + <p class="none"> + <a href="http://www.w3.org/TR/xsl/" class="offsite" title="The XSL 1.0 Proposed Recommendation"><acronym title="eXtensible Style Language">XSL</acronym> 1.0</a> <span class="hideme">|</span> + <a href="http://www.w3.org/TR/REC-CSS2" class="offsite" title="The CSS Level 2 Recommendation"><acronym title="Cascading Style Sheets">CSS</acronym> Level 2</a> <span class="hideme">|</span> + <a href="http://www.w3.org/TR/REC-CSS1" class="offsite" title="The CSS Level 1 Recommendation"><acronym title="Cascading Style Sheets">CSS</acronym> Level 1</a> <span class="hideme">|</span> + </p> + <p class="none"> + <a href="http://www.w3.org/WAI/" class="offsite" title="The Web Accessibility Initiative Home Page"><acronym title="Web Accessibility Initiative">WAI</acronym> Home</a> <span class="hideme">|</span> + <a href="http://www.w3.org/Talks/WAI-Intro/slide1-0.html" class="offsite" title="Overview of the Web Accessibility Initiative"><acronym title="Web Accessibility Initiative">WAI</acronym> Overview</a> <span class="hideme">|</span> + <a href="http://www.w3.org/WAI/bcase/benefits.html" class="offsite" title="Benefits of Accessible Web Design"><acronym title="Web Accessibility Initiative">WAI</acronym> Benefits</a> <span class="hideme">|</span> + <a href="http://www.w3.org/1999/05/WCAG-REC-fact" class="offsite" title="Frequently Asked Questions About The Web Content Accessibility Guidelines"><acronym title="Web Content Accessibility Guidelines">WCAG</acronym> <acronym title="Frequently Asked Questions">FAQ</acronym></a> <span class="hideme">|</span> + <a href="http://www.w3.org/TR/WCAG10/" class="offsite" title="Web Content Accesibility Guidelines 1.0"><acronym title="Web Content Accessibility Guidelines">WCAG</acronym> 1.0</a> <span class="hideme">|</span> + <a href="http://www.w3.org/WAI/gettingstarted/" class="offsite" title="WAI Getting Started Guide"><acronym title="Web Accessibility Initiative">WAI</acronym> Intro</a> <span class="hideme">|</span> + <a href="http://www.w3.org/WAI/References/QuickTips/" class="offsite" title="WAI Quick Tips"><acronym title="Web Accessibility Initiative">WAI</acronym> Tips</a> <span class="hideme">|</span> </p> - <h1 id="title"><a href="http://www.w3.org/"><img height="48" alt="W3C" - id="logo" src="http://www.w3.org/Icons/WWW/w3c_home" /></a> - HTML Validation Service</h1> </div> diff --git a/htdocs/images/v15445.gif b/htdocs/images/v15445.gif Binary files differnew file mode 100644 index 0000000..fa06f25 --- /dev/null +++ b/htdocs/images/v15445.gif diff --git a/htdocs/images/v15445.png b/htdocs/images/v15445.png Binary files differnew file mode 100644 index 0000000..7309be4 --- /dev/null +++ b/htdocs/images/v15445.png diff --git a/htdocs/index.html b/htdocs/index.html index 5894f91..4573f6b 100755 --- a/htdocs/index.html +++ b/htdocs/index.html @@ -1,7 +1,8 @@ -<!--#set var="revision" value="\$Id: index.html,v 1.49 2002-02-11 22:09:09 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:09 $" +<!--#set var="revision" value="\$Id: index.html,v 1.50 2002-08-20 01:51:23 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:23 $" --><!--#set var="title" value="The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="./" +--><!--#include virtual="header.html" --> <div id="skip" class="intro"> <p> @@ -23,7 +24,7 @@ on the other hand this site fails to be understandable or accesible regardless of the browser you use, we would very much like to know about it. Send us feedback, as outlined on our - <a href="/feedback.html">Feedback Page</a>, and we'll do out level + <a href="feedback.html">Feedback Page</a>, and we'll do out level best to remedy the situation ASAP. </p> </div> @@ -32,18 +33,20 @@ <p> You can enter a URI in the <code>Address</code> field below, or choose a file to upload. There is also an <a title="Extended Interface to the - W3C HTML Validation Service" href="/detailed.html">Extended + W3C HTML Validation Service" href="detailed.html">Extended Interface</a> available if you want to set any advanced options. </p> - <form method="get" action="/check"> + <form method="get" action="check"> <p> - <label title="Address of page to Validate">Address: <input id="uri" name="uri" size="40" /></label> - <input type="submit" value="Validate URI..." /> + <label title="Address of page to Validate" for="uri">Address: + <input id="uri" name="uri" size="40" /></label> + <input type="submit" value="Validate URI..." /> </p> </form> - <form method="post" enctype="multipart/form-data" action="/check"> + <form method="post" enctype="multipart/form-data" action="check"> <p> - <label title="Choose a Local File to Upload and Validate">Local File: <input type="file" name="uploaded_file" size="30" /></label> + <label title="Choose a Local File to Upload and Validate" for="uploaded_file">Local File: + <input type="file" id="uploaded_file" name="uploaded_file" size="30" /></label> <input type="submit" value="Validate File..." /> </p> </form> @@ -65,7 +68,7 @@ </dl> </div> -<!--#include virtual="/footer.html" --> +<!--#include virtual="footer.html" --> </body> </html> diff --git a/htdocs/navbar.css b/htdocs/navbar.css new file mode 100644 index 0000000..446245b --- /dev/null +++ b/htdocs/navbar.css @@ -0,0 +1,39 @@ +/* + Navigation Style Sheet for the W3C HTML Validation Service. + + Copyright 2000 W3C (MIT, INRIA, Keio). All Rights Reserved. + See http://www.w3.org/Consortium/Legal/ipr-notice.html#Copyright + + $Id: navbar.css,v 1.2 2002-08-20 01:51:23 link Exp $ +*/ + +div.navbar p a { + display: block; + text-decoration: none; +} + +div.navbar p a:hover { + background: #ccc; +} + +div.navbar { + float: right; + text-align: right; + text-decoration: none; + margin: .1ex .1ex 2.5ex 1ex; + padding: 1ex; + background-color: #eee; + border-left: 1px solid black; + clear: both; + width: 8em; +} + +div.navbar p { + border-top: 1px solid black; + margin: .1ex; + padding: .1ex .1em 1.5ex .1em; +} + +div.navbar p.main { + border-top-style: none; +} diff --git a/htdocs/p3p.html b/htdocs/p3p.html index c2d469f..034a213 100755 --- a/htdocs/p3p.html +++ b/htdocs/p3p.html @@ -6,7 +6,7 @@ <head> <title>About the W3C HTML Validation Service</title> <meta name="revision" - content="$Id: p3p.html,v 1.1 2000-07-10 20:04:55 koike Exp $" /> + content="$Id: p3p.html,v 1.2 2002-08-20 01:51:23 link Exp $" /> </head> <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b"> @@ -26,7 +26,7 @@ </p> <ul> - <li><a href="/source/">Information on the source code availability</a></li> + <li><a href="source/">Information on the source code availability</a></li> <li><a href="todo.html">The to-do list for the service</a></li> <li><a href="sgml-lib/catalog">DTDs (document types) supported by this service</a> (the SGML catalog)</li> @@ -111,7 +111,7 @@ src="http://validator.w3.org/images/vxhtml10" height="31" width="88" align="right" border="0" alt="Valid XHTML 1.0!" /></a> <a href="/feedback.html">Gerald Oskoboiny</a><br /> - $Date: 2000-07-10 20:04:55 $ + $Date: 2002-08-20 01:51:23 $ </address> </body> diff --git a/htdocs/results.css b/htdocs/results.css index 0b336db..a51350b 100644 --- a/htdocs/results.css +++ b/htdocs/results.css @@ -1,7 +1,5 @@ /* style sheet for the validator's results page */ -/* $Id: results.css,v 1.8 2001-09-20 18:12:13 link Exp $ */ - -@import url(base.css); +/* $Id: results.css,v 1.9 2002-08-20 01:51:23 link Exp $ */ .markup { color: red; @@ -14,11 +12,29 @@ } table.header { - background-color: silver; + background-color: #eeeeee; +} + +ul#Warnings { + clear: left; + padding-top: 1ex; +} + +div.meat { +/* border: 1px solid red; */ /* Used for debugging */ + margin-right: 10em; +} + +div.splash { + border: 1px solid blue; /* Used for debugging */ + background: #eeeeee; } th { padding-right: .5em; + text-align: right; + vertical-align: middle; + white-space: nowrap; } td { @@ -26,19 +42,75 @@ td { padding-left: .5em; } -h1.title img { - vertical-align: middle; +.info { + background: white; + border-color: gray; +} + +.warning { + background: silver; + border-color: gray; +} + +.error { + background: yellow; + border-color: black; +} + +.fatal { + background: red; + border-color: black; +} + +.valid { + background: #053188; + color: white; + font-family: Tahoma, Verdana, Myriad Web, Syntax, sans-serif; + font-size-adjust: .53; + font-size: 1.5em; + font-weight: 500; + font-style: normal; + text-decoration: none; + word-spacing: normal; + letter-spacing: normal; + text-transform: none; + border-color: black; +} + +.valid a { + color: yellow; +} + +.valid a:visited { + color: silver; +} + +.valid a:hover { + color: #053188; +} + +.valid a:active { + color: red; +} + + +.invalid { +/* clear: both; */ + background: #880531; + color: white; + font-family: Tahoma, Verdana, Myriad Web, Syntax, sans-serif; + font-size-adjust: .53; + font-size: 1.5em; + font-weight: 500; + font-style: normal; + text-decoration: none; + word-spacing: normal; + letter-spacing: normal; + text-transform: none; + border-color: black; } -#Notice { - width: 75ex; - border: solid; - margin: .2em; - padding: .5em; - text-align: justify; +.invalid a { + color: yellow; } -.info {background: white; border-color: gray;} -.warning {background: silver; border-color: gray;} -.error {background: yellow; border-color: black;} -.fatal {background: red; border-color: black;} diff --git a/htdocs/sgml-lib/REC-MathML2-20010221/mathml.soc b/htdocs/sgml-lib/REC-MathML2-20010221/mathml.soc index 6fb45c2..e4b2077 100644 --- a/htdocs/sgml-lib/REC-MathML2-20010221/mathml.soc +++ b/htdocs/sgml-lib/REC-MathML2-20010221/mathml.soc @@ -1,8 +1,8 @@ -- catalog for MathML 2.0 for use in W3C's validation service -- - -- $Id: mathml.soc,v 1.1 2001-06-13 23:38:49 link Exp $ -- + -- $Id: mathml.soc,v 1.2 2002-08-20 01:51:30 link Exp $ -- OVERRIDE YES -SGMLDECL "../sp-1.3/pubtext/xml.dcl" +SGMLDECL "mathml.dcl" PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "xhtml-math11-f.dtd" PUBLIC "-//W3C//DTD MathML 2.0//EN" "mathml2.dtd" diff --git a/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml-lat1.ent b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml-lat1.ent new file mode 100644 index 0000000..ffee223 --- /dev/null +++ b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml-lat1.ent @@ -0,0 +1,196 @@ +<!-- Portions (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. +--> +<!-- Character entity set. Typical invocation: + <!ENTITY % HTMLlat1 PUBLIC + "-//W3C//ENTITIES Latin 1 for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"> + %HTMLlat1; +--> + +<!ENTITY nbsp " "> <!-- no-break space = non-breaking space, + U+00A0 ISOnum --> +<!ENTITY iexcl "¡"> <!-- inverted exclamation mark, U+00A1 ISOnum --> +<!ENTITY cent "¢"> <!-- cent sign, U+00A2 ISOnum --> +<!ENTITY pound "£"> <!-- pound sign, U+00A3 ISOnum --> +<!ENTITY curren "¤"> <!-- currency sign, U+00A4 ISOnum --> +<!ENTITY yen "¥"> <!-- yen sign = yuan sign, U+00A5 ISOnum --> +<!ENTITY brvbar "¦"> <!-- broken bar = broken vertical bar, + U+00A6 ISOnum --> +<!ENTITY sect "§"> <!-- section sign, U+00A7 ISOnum --> +<!ENTITY uml "¨"> <!-- diaeresis = spacing diaeresis, + U+00A8 ISOdia --> +<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum --> +<!ENTITY ordf "ª"> <!-- feminine ordinal indicator, U+00AA ISOnum --> +<!ENTITY laquo "«"> <!-- left-pointing double angle quotation mark + = left pointing guillemet, U+00AB ISOnum --> +<!ENTITY not "¬"> <!-- not sign = angled dash, + U+00AC ISOnum --> +<!ENTITY shy "­"> <!-- soft hyphen = discretionary hyphen, + U+00AD ISOnum --> +<!ENTITY reg "®"> <!-- registered sign = registered trade mark sign, + U+00AE ISOnum --> +<!ENTITY macr "¯"> <!-- macron = spacing macron = overline + = APL overbar, U+00AF ISOdia --> +<!ENTITY deg "°"> <!-- degree sign, U+00B0 ISOnum --> +<!ENTITY plusmn "±"> <!-- plus-minus sign = plus-or-minus sign, + U+00B1 ISOnum --> +<!ENTITY sup2 "²"> <!-- superscript two = superscript digit two + = squared, U+00B2 ISOnum --> +<!ENTITY sup3 "³"> <!-- superscript three = superscript digit three + = cubed, U+00B3 ISOnum --> +<!ENTITY acute "´"> <!-- acute accent = spacing acute, + U+00B4 ISOdia --> +<!ENTITY micro "µ"> <!-- micro sign, U+00B5 ISOnum --> +<!ENTITY para "¶"> <!-- pilcrow sign = paragraph sign, + U+00B6 ISOnum --> +<!ENTITY middot "·"> <!-- middle dot = Georgian comma + = Greek middle dot, U+00B7 ISOnum --> +<!ENTITY cedil "¸"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia --> +<!ENTITY sup1 "¹"> <!-- superscript one = superscript digit one, + U+00B9 ISOnum --> +<!ENTITY ordm "º"> <!-- masculine ordinal indicator, + U+00BA ISOnum --> +<!ENTITY raquo "»"> <!-- right-pointing double angle quotation mark + = right pointing guillemet, U+00BB ISOnum --> +<!ENTITY frac14 "¼"> <!-- vulgar fraction one quarter + = fraction one quarter, U+00BC ISOnum --> +<!ENTITY frac12 "½"> <!-- vulgar fraction one half + = fraction one half, U+00BD ISOnum --> +<!ENTITY frac34 "¾"> <!-- vulgar fraction three quarters + = fraction three quarters, U+00BE ISOnum --> +<!ENTITY iquest "¿"> <!-- inverted question mark + = turned question mark, U+00BF ISOnum --> +<!ENTITY Agrave "À"> <!-- latin capital letter A with grave + = latin capital letter A grave, + U+00C0 ISOlat1 --> +<!ENTITY Aacute "Á"> <!-- latin capital letter A with acute, + U+00C1 ISOlat1 --> +<!ENTITY Acirc "Â"> <!-- latin capital letter A with circumflex, + U+00C2 ISOlat1 --> +<!ENTITY Atilde "Ã"> <!-- latin capital letter A with tilde, + U+00C3 ISOlat1 --> +<!ENTITY Auml "Ä"> <!-- latin capital letter A with diaeresis, + U+00C4 ISOlat1 --> +<!ENTITY Aring "Å"> <!-- latin capital letter A with ring above + = latin capital letter A ring, + U+00C5 ISOlat1 --> +<!ENTITY AElig "Æ"> <!-- latin capital letter AE + = latin capital ligature AE, + U+00C6 ISOlat1 --> +<!ENTITY Ccedil "Ç"> <!-- latin capital letter C with cedilla, + U+00C7 ISOlat1 --> +<!ENTITY Egrave "È"> <!-- latin capital letter E with grave, + U+00C8 ISOlat1 --> +<!ENTITY Eacute "É"> <!-- latin capital letter E with acute, + U+00C9 ISOlat1 --> +<!ENTITY Ecirc "Ê"> <!-- latin capital letter E with circumflex, + U+00CA ISOlat1 --> +<!ENTITY Euml "Ë"> <!-- latin capital letter E with diaeresis, + U+00CB ISOlat1 --> +<!ENTITY Igrave "Ì"> <!-- latin capital letter I with grave, + U+00CC ISOlat1 --> +<!ENTITY Iacute "Í"> <!-- latin capital letter I with acute, + U+00CD ISOlat1 --> +<!ENTITY Icirc "Î"> <!-- latin capital letter I with circumflex, + U+00CE ISOlat1 --> +<!ENTITY Iuml "Ï"> <!-- latin capital letter I with diaeresis, + U+00CF ISOlat1 --> +<!ENTITY ETH "Ð"> <!-- latin capital letter ETH, U+00D0 ISOlat1 --> +<!ENTITY Ntilde "Ñ"> <!-- latin capital letter N with tilde, + U+00D1 ISOlat1 --> +<!ENTITY Ograve "Ò"> <!-- latin capital letter O with grave, + U+00D2 ISOlat1 --> +<!ENTITY Oacute "Ó"> <!-- latin capital letter O with acute, + U+00D3 ISOlat1 --> +<!ENTITY Ocirc "Ô"> <!-- latin capital letter O with circumflex, + U+00D4 ISOlat1 --> +<!ENTITY Otilde "Õ"> <!-- latin capital letter O with tilde, + U+00D5 ISOlat1 --> +<!ENTITY Ouml "Ö"> <!-- latin capital letter O with diaeresis, + U+00D6 ISOlat1 --> +<!ENTITY times "×"> <!-- multiplication sign, U+00D7 ISOnum --> +<!ENTITY Oslash "Ø"> <!-- latin capital letter O with stroke + = latin capital letter O slash, + U+00D8 ISOlat1 --> +<!ENTITY Ugrave "Ù"> <!-- latin capital letter U with grave, + U+00D9 ISOlat1 --> +<!ENTITY Uacute "Ú"> <!-- latin capital letter U with acute, + U+00DA ISOlat1 --> +<!ENTITY Ucirc "Û"> <!-- latin capital letter U with circumflex, + U+00DB ISOlat1 --> +<!ENTITY Uuml "Ü"> <!-- latin capital letter U with diaeresis, + U+00DC ISOlat1 --> +<!ENTITY Yacute "Ý"> <!-- latin capital letter Y with acute, + U+00DD ISOlat1 --> +<!ENTITY THORN "Þ"> <!-- latin capital letter THORN, + U+00DE ISOlat1 --> +<!ENTITY szlig "ß"> <!-- latin small letter sharp s = ess-zed, + U+00DF ISOlat1 --> +<!ENTITY agrave "à"> <!-- latin small letter a with grave + = latin small letter a grave, + U+00E0 ISOlat1 --> +<!ENTITY aacute "á"> <!-- latin small letter a with acute, + U+00E1 ISOlat1 --> +<!ENTITY acirc "â"> <!-- latin small letter a with circumflex, + U+00E2 ISOlat1 --> +<!ENTITY atilde "ã"> <!-- latin small letter a with tilde, + U+00E3 ISOlat1 --> +<!ENTITY auml "ä"> <!-- latin small letter a with diaeresis, + U+00E4 ISOlat1 --> +<!ENTITY aring "å"> <!-- latin small letter a with ring above + = latin small letter a ring, + U+00E5 ISOlat1 --> +<!ENTITY aelig "æ"> <!-- latin small letter ae + = latin small ligature ae, U+00E6 ISOlat1 --> +<!ENTITY ccedil "ç"> <!-- latin small letter c with cedilla, + U+00E7 ISOlat1 --> +<!ENTITY egrave "è"> <!-- latin small letter e with grave, + U+00E8 ISOlat1 --> +<!ENTITY eacute "é"> <!-- latin small letter e with acute, + U+00E9 ISOlat1 --> +<!ENTITY ecirc "ê"> <!-- latin small letter e with circumflex, + U+00EA ISOlat1 --> +<!ENTITY euml "ë"> <!-- latin small letter e with diaeresis, + U+00EB ISOlat1 --> +<!ENTITY igrave "ì"> <!-- latin small letter i with grave, + U+00EC ISOlat1 --> +<!ENTITY iacute "í"> <!-- latin small letter i with acute, + U+00ED ISOlat1 --> +<!ENTITY icirc "î"> <!-- latin small letter i with circumflex, + U+00EE ISOlat1 --> +<!ENTITY iuml "ï"> <!-- latin small letter i with diaeresis, + U+00EF ISOlat1 --> +<!ENTITY eth "ð"> <!-- latin small letter eth, U+00F0 ISOlat1 --> +<!ENTITY ntilde "ñ"> <!-- latin small letter n with tilde, + U+00F1 ISOlat1 --> +<!ENTITY ograve "ò"> <!-- latin small letter o with grave, + U+00F2 ISOlat1 --> +<!ENTITY oacute "ó"> <!-- latin small letter o with acute, + U+00F3 ISOlat1 --> +<!ENTITY ocirc "ô"> <!-- latin small letter o with circumflex, + U+00F4 ISOlat1 --> +<!ENTITY otilde "õ"> <!-- latin small letter o with tilde, + U+00F5 ISOlat1 --> +<!ENTITY ouml "ö"> <!-- latin small letter o with diaeresis, + U+00F6 ISOlat1 --> +<!ENTITY divide "÷"> <!-- division sign, U+00F7 ISOnum --> +<!ENTITY oslash "ø"> <!-- latin small letter o with stroke, + = latin small letter o slash, + U+00F8 ISOlat1 --> +<!ENTITY ugrave "ù"> <!-- latin small letter u with grave, + U+00F9 ISOlat1 --> +<!ENTITY uacute "ú"> <!-- latin small letter u with acute, + U+00FA ISOlat1 --> +<!ENTITY ucirc "û"> <!-- latin small letter u with circumflex, + U+00FB ISOlat1 --> +<!ENTITY uuml "ü"> <!-- latin small letter u with diaeresis, + U+00FC ISOlat1 --> +<!ENTITY yacute "ý"> <!-- latin small letter y with acute, + U+00FD ISOlat1 --> +<!ENTITY thorn "þ"> <!-- latin small letter thorn, + U+00FE ISOlat1 --> +<!ENTITY yuml "ÿ"> <!-- latin small letter y with diaeresis, + U+00FF ISOlat1 --> diff --git a/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml-special.ent b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml-special.ent new file mode 100644 index 0000000..ca358b2 --- /dev/null +++ b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml-special.ent @@ -0,0 +1,80 @@ +<!-- Special characters for XHTML --> + +<!-- Character entity set. Typical invocation: + <!ENTITY % HTMLspecial PUBLIC + "-//W3C//ENTITIES Special for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"> + %HTMLspecial; +--> + +<!-- Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. +--> + +<!-- Relevant ISO entity set is given unless names are newly introduced. + New names (i.e., not in ISO 8879 list) do not clash with any + existing ISO 8879 entity names. ISO 10646 character numbers + are given for each character, in hex. values are decimal + conversions of the ISO 10646 values and refer to the document + character set. Names are Unicode names. +--> + +<!-- C0 Controls and Basic Latin --> +<!ENTITY quot """> <!-- quotation mark, U+0022 ISOnum --> +<!ENTITY amp "&#38;"> <!-- ampersand, U+0026 ISOnum --> +<!ENTITY lt "&#60;"> <!-- less-than sign, U+003C ISOnum --> +<!ENTITY gt ">"> <!-- greater-than sign, U+003E ISOnum --> +<!ENTITY apos "'"> <!-- apostrophe = APL quote, U+0027 ISOnum --> + +<!-- Latin Extended-A --> +<!ENTITY OElig "Œ"> <!-- latin capital ligature OE, + U+0152 ISOlat2 --> +<!ENTITY oelig "œ"> <!-- latin small ligature oe, U+0153 ISOlat2 --> +<!-- ligature is a misnomer, this is a separate character in some languages --> +<!ENTITY Scaron "Š"> <!-- latin capital letter S with caron, + U+0160 ISOlat2 --> +<!ENTITY scaron "š"> <!-- latin small letter s with caron, + U+0161 ISOlat2 --> +<!ENTITY Yuml "Ÿ"> <!-- latin capital letter Y with diaeresis, + U+0178 ISOlat2 --> + +<!-- Spacing Modifier Letters --> +<!ENTITY circ "ˆ"> <!-- modifier letter circumflex accent, + U+02C6 ISOpub --> +<!ENTITY tilde "˜"> <!-- small tilde, U+02DC ISOdia --> + +<!-- General Punctuation --> +<!ENTITY ensp " "> <!-- en space, U+2002 ISOpub --> +<!ENTITY emsp " "> <!-- em space, U+2003 ISOpub --> +<!ENTITY thinsp " "> <!-- thin space, U+2009 ISOpub --> +<!ENTITY zwnj "‌"> <!-- zero width non-joiner, + U+200C NEW RFC 2070 --> +<!ENTITY zwj "‍"> <!-- zero width joiner, U+200D NEW RFC 2070 --> +<!ENTITY lrm "‎"> <!-- left-to-right mark, U+200E NEW RFC 2070 --> +<!ENTITY rlm "‏"> <!-- right-to-left mark, U+200F NEW RFC 2070 --> +<!ENTITY ndash "–"> <!-- en dash, U+2013 ISOpub --> +<!ENTITY mdash "—"> <!-- em dash, U+2014 ISOpub --> +<!ENTITY lsquo "‘"> <!-- left single quotation mark, + U+2018 ISOnum --> +<!ENTITY rsquo "’"> <!-- right single quotation mark, + U+2019 ISOnum --> +<!ENTITY sbquo "‚"> <!-- single low-9 quotation mark, U+201A NEW --> +<!ENTITY ldquo "“"> <!-- left double quotation mark, + U+201C ISOnum --> +<!ENTITY rdquo "”"> <!-- right double quotation mark, + U+201D ISOnum --> +<!ENTITY bdquo "„"> <!-- double low-9 quotation mark, U+201E NEW --> +<!ENTITY dagger "†"> <!-- dagger, U+2020 ISOpub --> +<!ENTITY Dagger "‡"> <!-- double dagger, U+2021 ISOpub --> +<!ENTITY permil "‰"> <!-- per mille sign, U+2030 ISOtech --> +<!ENTITY lsaquo "‹"> <!-- single left-pointing angle quotation mark, + U+2039 ISO proposed --> +<!-- lsaquo is proposed but not yet ISO standardized --> +<!ENTITY rsaquo "›"> <!-- single right-pointing angle quotation mark, + U+203A ISO proposed --> +<!-- rsaquo is proposed but not yet ISO standardized --> + +<!-- Currency Symbols --> +<!ENTITY euro "€"> <!-- euro sign, U+20AC NEW --> diff --git a/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml-symbol.ent b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml-symbol.ent new file mode 100644 index 0000000..63c2abf --- /dev/null +++ b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml-symbol.ent @@ -0,0 +1,237 @@ +<!-- Mathematical, Greek and Symbolic characters for XHTML --> + +<!-- Character entity set. Typical invocation: + <!ENTITY % HTMLsymbol PUBLIC + "-//W3C//ENTITIES Symbols for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"> + %HTMLsymbol; +--> + +<!-- Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. +--> + +<!-- Relevant ISO entity set is given unless names are newly introduced. + New names (i.e., not in ISO 8879 list) do not clash with any + existing ISO 8879 entity names. ISO 10646 character numbers + are given for each character, in hex. values are decimal + conversions of the ISO 10646 values and refer to the document + character set. Names are Unicode names. +--> + +<!-- Latin Extended-B --> +<!ENTITY fnof "ƒ"> <!-- latin small letter f with hook = function + = florin, U+0192 ISOtech --> + +<!-- Greek --> +<!ENTITY Alpha "Α"> <!-- greek capital letter alpha, U+0391 --> +<!ENTITY Beta "Β"> <!-- greek capital letter beta, U+0392 --> +<!ENTITY Gamma "Γ"> <!-- greek capital letter gamma, + U+0393 ISOgrk3 --> +<!ENTITY Delta "Δ"> <!-- greek capital letter delta, + U+0394 ISOgrk3 --> +<!ENTITY Epsilon "Ε"> <!-- greek capital letter epsilon, U+0395 --> +<!ENTITY Zeta "Ζ"> <!-- greek capital letter zeta, U+0396 --> +<!ENTITY Eta "Η"> <!-- greek capital letter eta, U+0397 --> +<!ENTITY Theta "Θ"> <!-- greek capital letter theta, + U+0398 ISOgrk3 --> +<!ENTITY Iota "Ι"> <!-- greek capital letter iota, U+0399 --> +<!ENTITY Kappa "Κ"> <!-- greek capital letter kappa, U+039A --> +<!ENTITY Lambda "Λ"> <!-- greek capital letter lamda, + U+039B ISOgrk3 --> +<!ENTITY Mu "Μ"> <!-- greek capital letter mu, U+039C --> +<!ENTITY Nu "Ν"> <!-- greek capital letter nu, U+039D --> +<!ENTITY Xi "Ξ"> <!-- greek capital letter xi, U+039E ISOgrk3 --> +<!ENTITY Omicron "Ο"> <!-- greek capital letter omicron, U+039F --> +<!ENTITY Pi "Π"> <!-- greek capital letter pi, U+03A0 ISOgrk3 --> +<!ENTITY Rho "Ρ"> <!-- greek capital letter rho, U+03A1 --> +<!-- there is no Sigmaf, and no U+03A2 character either --> +<!ENTITY Sigma "Σ"> <!-- greek capital letter sigma, + U+03A3 ISOgrk3 --> +<!ENTITY Tau "Τ"> <!-- greek capital letter tau, U+03A4 --> +<!ENTITY Upsilon "Υ"> <!-- greek capital letter upsilon, + U+03A5 ISOgrk3 --> +<!ENTITY Phi "Φ"> <!-- greek capital letter phi, + U+03A6 ISOgrk3 --> +<!ENTITY Chi "Χ"> <!-- greek capital letter chi, U+03A7 --> +<!ENTITY Psi "Ψ"> <!-- greek capital letter psi, + U+03A8 ISOgrk3 --> +<!ENTITY Omega "Ω"> <!-- greek capital letter omega, + U+03A9 ISOgrk3 --> + +<!ENTITY alpha "α"> <!-- greek small letter alpha, + U+03B1 ISOgrk3 --> +<!ENTITY beta "β"> <!-- greek small letter beta, U+03B2 ISOgrk3 --> +<!ENTITY gamma "γ"> <!-- greek small letter gamma, + U+03B3 ISOgrk3 --> +<!ENTITY delta "δ"> <!-- greek small letter delta, + U+03B4 ISOgrk3 --> +<!ENTITY epsilon "ε"> <!-- greek small letter epsilon, + U+03B5 ISOgrk3 --> +<!ENTITY zeta "ζ"> <!-- greek small letter zeta, U+03B6 ISOgrk3 --> +<!ENTITY eta "η"> <!-- greek small letter eta, U+03B7 ISOgrk3 --> +<!ENTITY theta "θ"> <!-- greek small letter theta, + U+03B8 ISOgrk3 --> +<!ENTITY iota "ι"> <!-- greek small letter iota, U+03B9 ISOgrk3 --> +<!ENTITY kappa "κ"> <!-- greek small letter kappa, + U+03BA ISOgrk3 --> +<!ENTITY lambda "λ"> <!-- greek small letter lamda, + U+03BB ISOgrk3 --> +<!ENTITY mu "μ"> <!-- greek small letter mu, U+03BC ISOgrk3 --> +<!ENTITY nu "ν"> <!-- greek small letter nu, U+03BD ISOgrk3 --> +<!ENTITY xi "ξ"> <!-- greek small letter xi, U+03BE ISOgrk3 --> +<!ENTITY omicron "ο"> <!-- greek small letter omicron, U+03BF NEW --> +<!ENTITY pi "π"> <!-- greek small letter pi, U+03C0 ISOgrk3 --> +<!ENTITY rho "ρ"> <!-- greek small letter rho, U+03C1 ISOgrk3 --> +<!ENTITY sigmaf "ς"> <!-- greek small letter final sigma, + U+03C2 ISOgrk3 --> +<!ENTITY sigma "σ"> <!-- greek small letter sigma, + U+03C3 ISOgrk3 --> +<!ENTITY tau "τ"> <!-- greek small letter tau, U+03C4 ISOgrk3 --> +<!ENTITY upsilon "υ"> <!-- greek small letter upsilon, + U+03C5 ISOgrk3 --> +<!ENTITY phi "φ"> <!-- greek small letter phi, U+03C6 ISOgrk3 --> +<!ENTITY chi "χ"> <!-- greek small letter chi, U+03C7 ISOgrk3 --> +<!ENTITY psi "ψ"> <!-- greek small letter psi, U+03C8 ISOgrk3 --> +<!ENTITY omega "ω"> <!-- greek small letter omega, + U+03C9 ISOgrk3 --> +<!ENTITY thetasym "ϑ"> <!-- greek theta symbol, + U+03D1 NEW --> +<!ENTITY upsih "ϒ"> <!-- greek upsilon with hook symbol, + U+03D2 NEW --> +<!ENTITY piv "ϖ"> <!-- greek pi symbol, U+03D6 ISOgrk3 --> + +<!-- General Punctuation --> +<!ENTITY bull "•"> <!-- bullet = black small circle, + U+2022 ISOpub --> +<!-- bullet is NOT the same as bullet operator, U+2219 --> +<!ENTITY hellip "…"> <!-- horizontal ellipsis = three dot leader, + U+2026 ISOpub --> +<!ENTITY prime "′"> <!-- prime = minutes = feet, U+2032 ISOtech --> +<!ENTITY Prime "″"> <!-- double prime = seconds = inches, + U+2033 ISOtech --> +<!ENTITY oline "‾"> <!-- overline = spacing overscore, + U+203E NEW --> +<!ENTITY frasl "⁄"> <!-- fraction slash, U+2044 NEW --> + +<!-- Letterlike Symbols --> +<!ENTITY weierp "℘"> <!-- script capital P = power set + = Weierstrass p, U+2118 ISOamso --> +<!ENTITY image "ℑ"> <!-- black-letter capital I = imaginary part, + U+2111 ISOamso --> +<!ENTITY real "ℜ"> <!-- black-letter capital R = real part symbol, + U+211C ISOamso --> +<!ENTITY trade "™"> <!-- trade mark sign, U+2122 ISOnum --> +<!ENTITY alefsym "ℵ"> <!-- alef symbol = first transfinite cardinal, + U+2135 NEW --> +<!-- alef symbol is NOT the same as hebrew letter alef, + U+05D0 although the same glyph could be used to depict both characters --> + +<!-- Arrows --> +<!ENTITY larr "←"> <!-- leftwards arrow, U+2190 ISOnum --> +<!ENTITY uarr "↑"> <!-- upwards arrow, U+2191 ISOnum--> +<!ENTITY rarr "→"> <!-- rightwards arrow, U+2192 ISOnum --> +<!ENTITY darr "↓"> <!-- downwards arrow, U+2193 ISOnum --> +<!ENTITY harr "↔"> <!-- left right arrow, U+2194 ISOamsa --> +<!ENTITY crarr "↵"> <!-- downwards arrow with corner leftwards + = carriage return, U+21B5 NEW --> +<!ENTITY lArr "⇐"> <!-- leftwards double arrow, U+21D0 ISOtech --> +<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow + but also does not have any other character for that function. So lArr can + be used for 'is implied by' as ISOtech suggests --> +<!ENTITY uArr "⇑"> <!-- upwards double arrow, U+21D1 ISOamsa --> +<!ENTITY rArr "⇒"> <!-- rightwards double arrow, + U+21D2 ISOtech --> +<!-- Unicode does not say this is the 'implies' character but does not have + another character with this function so rArr can be used for 'implies' + as ISOtech suggests --> +<!ENTITY dArr "⇓"> <!-- downwards double arrow, U+21D3 ISOamsa --> +<!ENTITY hArr "⇔"> <!-- left right double arrow, + U+21D4 ISOamsa --> + +<!-- Mathematical Operators --> +<!ENTITY forall "∀"> <!-- for all, U+2200 ISOtech --> +<!ENTITY part "∂"> <!-- partial differential, U+2202 ISOtech --> +<!ENTITY exist "∃"> <!-- there exists, U+2203 ISOtech --> +<!ENTITY empty "∅"> <!-- empty set = null set, U+2205 ISOamso --> +<!ENTITY nabla "∇"> <!-- nabla = backward difference, + U+2207 ISOtech --> +<!ENTITY isin "∈"> <!-- element of, U+2208 ISOtech --> +<!ENTITY notin "∉"> <!-- not an element of, U+2209 ISOtech --> +<!ENTITY ni "∋"> <!-- contains as member, U+220B ISOtech --> +<!ENTITY prod "∏"> <!-- n-ary product = product sign, + U+220F ISOamsb --> +<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though + the same glyph might be used for both --> +<!ENTITY sum "∑"> <!-- n-ary summation, U+2211 ISOamsb --> +<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma' + though the same glyph might be used for both --> +<!ENTITY minus "−"> <!-- minus sign, U+2212 ISOtech --> +<!ENTITY lowast "∗"> <!-- asterisk operator, U+2217 ISOtech --> +<!ENTITY radic "√"> <!-- square root = radical sign, + U+221A ISOtech --> +<!ENTITY prop "∝"> <!-- proportional to, U+221D ISOtech --> +<!ENTITY infin "∞"> <!-- infinity, U+221E ISOtech --> +<!ENTITY ang "∠"> <!-- angle, U+2220 ISOamso --> +<!ENTITY and "∧"> <!-- logical and = wedge, U+2227 ISOtech --> +<!ENTITY or "∨"> <!-- logical or = vee, U+2228 ISOtech --> +<!ENTITY cap "∩"> <!-- intersection = cap, U+2229 ISOtech --> +<!ENTITY cup "∪"> <!-- union = cup, U+222A ISOtech --> +<!ENTITY int "∫"> <!-- integral, U+222B ISOtech --> +<!ENTITY there4 "∴"> <!-- therefore, U+2234 ISOtech --> +<!ENTITY sim "∼"> <!-- tilde operator = varies with = similar to, + U+223C ISOtech --> +<!-- tilde operator is NOT the same character as the tilde, U+007E, + although the same glyph might be used to represent both --> +<!ENTITY cong "≅"> <!-- approximately equal to, U+2245 ISOtech --> +<!ENTITY asymp "≈"> <!-- almost equal to = asymptotic to, + U+2248 ISOamsr --> +<!ENTITY ne "≠"> <!-- not equal to, U+2260 ISOtech --> +<!ENTITY equiv "≡"> <!-- identical to, U+2261 ISOtech --> +<!ENTITY le "≤"> <!-- less-than or equal to, U+2264 ISOtech --> +<!ENTITY ge "≥"> <!-- greater-than or equal to, + U+2265 ISOtech --> +<!ENTITY sub "⊂"> <!-- subset of, U+2282 ISOtech --> +<!ENTITY sup "⊃"> <!-- superset of, U+2283 ISOtech --> +<!ENTITY nsub "⊄"> <!-- not a subset of, U+2284 ISOamsn --> +<!ENTITY sube "⊆"> <!-- subset of or equal to, U+2286 ISOtech --> +<!ENTITY supe "⊇"> <!-- superset of or equal to, + U+2287 ISOtech --> +<!ENTITY oplus "⊕"> <!-- circled plus = direct sum, + U+2295 ISOamsb --> +<!ENTITY otimes "⊗"> <!-- circled times = vector product, + U+2297 ISOamsb --> +<!ENTITY perp "⊥"> <!-- up tack = orthogonal to = perpendicular, + U+22A5 ISOtech --> +<!ENTITY sdot "⋅"> <!-- dot operator, U+22C5 ISOamsb --> +<!-- dot operator is NOT the same character as U+00B7 middle dot --> + +<!-- Miscellaneous Technical --> +<!ENTITY lceil "⌈"> <!-- left ceiling = APL upstile, + U+2308 ISOamsc --> +<!ENTITY rceil "⌉"> <!-- right ceiling, U+2309 ISOamsc --> +<!ENTITY lfloor "⌊"> <!-- left floor = APL downstile, + U+230A ISOamsc --> +<!ENTITY rfloor "⌋"> <!-- right floor, U+230B ISOamsc --> +<!ENTITY lang "〈"> <!-- left-pointing angle bracket = bra, + U+2329 ISOtech --> +<!-- lang is NOT the same character as U+003C 'less than sign' + or U+2039 'single left-pointing angle quotation mark' --> +<!ENTITY rang "〉"> <!-- right-pointing angle bracket = ket, + U+232A ISOtech --> +<!-- rang is NOT the same character as U+003E 'greater than sign' + or U+203A 'single right-pointing angle quotation mark' --> + +<!-- Geometric Shapes --> +<!ENTITY loz "◊"> <!-- lozenge, U+25CA ISOpub --> + +<!-- Miscellaneous Symbols --> +<!ENTITY spades "♠"> <!-- black spade suit, U+2660 ISOpub --> +<!-- black here seems to mean filled as opposed to hollow --> +<!ENTITY clubs "♣"> <!-- black club suit = shamrock, + U+2663 ISOpub --> +<!ENTITY hearts "♥"> <!-- black heart suit = valentine, + U+2665 ISOpub --> +<!ENTITY diams "♦"> <!-- black diamond suit, U+2666 ISOpub --> diff --git a/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml1-frameset.dtd b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml1-frameset.dtd new file mode 100644 index 0000000..2c8ff74 --- /dev/null +++ b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml1-frameset.dtd @@ -0,0 +1,1235 @@ +<!-- + Extensible HTML version 1.0 Frameset DTD + + This is the same as HTML 4 Frameset except for + changes due to the differences between XML and SGML. + + Namespace = http://www.w3.org/1999/xhtml + + For further information, see: http://www.w3.org/TR/xhtml1 + + Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio), + All Rights Reserved. + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" + SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd" + + $Revision: 1.1.2.1 $ + $Date: 2002/08/19 02:07:44 $ + +--> + +<!--================ Character mnemonic entities =========================--> + +<!ENTITY % HTMLlat1 PUBLIC + "-//W3C//ENTITIES Latin 1 for XHTML//EN" + "xhtml-lat1.ent"> +%HTMLlat1; + +<!ENTITY % HTMLsymbol PUBLIC + "-//W3C//ENTITIES Symbols for XHTML//EN" + "xhtml-symbol.ent"> +%HTMLsymbol; + +<!ENTITY % HTMLspecial PUBLIC + "-//W3C//ENTITIES Special for XHTML//EN" + "xhtml-special.ent"> +%HTMLspecial; + +<!--================== Imported Names ====================================--> + +<!ENTITY % ContentType "CDATA"> + <!-- media type, as per [RFC2045] --> + +<!ENTITY % ContentTypes "CDATA"> + <!-- comma-separated list of media types, as per [RFC2045] --> + +<!ENTITY % Charset "CDATA"> + <!-- a character encoding, as per [RFC2045] --> + +<!ENTITY % Charsets "CDATA"> + <!-- a space separated list of character encodings, as per [RFC2045] --> + +<!ENTITY % LanguageCode "NMTOKEN"> + <!-- a language code, as per [RFC3066] --> + +<!ENTITY % Character "CDATA"> + <!-- a single character, as per section 2.2 of [XML] --> + +<!ENTITY % Number "CDATA"> + <!-- one or more digits --> + +<!ENTITY % LinkTypes "CDATA"> + <!-- space-separated list of link types --> + +<!ENTITY % MediaDesc "CDATA"> + <!-- single or comma-separated list of media descriptors --> + +<!ENTITY % URI "CDATA"> + <!-- a Uniform Resource Identifier, see [RFC2396] --> + +<!ENTITY % UriList "CDATA"> + <!-- a space separated list of Uniform Resource Identifiers --> + +<!ENTITY % Datetime "CDATA"> + <!-- date and time information. ISO date format --> + +<!ENTITY % Script "CDATA"> + <!-- script expression --> + +<!ENTITY % StyleSheet "CDATA"> + <!-- style sheet data --> + +<!ENTITY % Text "CDATA"> + <!-- used for titles etc. --> + +<!ENTITY % FrameTarget "NMTOKEN"> + <!-- render in this frame --> + +<!ENTITY % Length "CDATA"> + <!-- nn for pixels or nn% for percentage length --> + +<!ENTITY % MultiLength "CDATA"> + <!-- pixel, percentage, or relative --> + +<!ENTITY % MultiLengths "CDATA"> + <!-- comma-separated list of MultiLength --> + +<!ENTITY % Pixels "CDATA"> + <!-- integer representing length in pixels --> + +<!-- these are used for image maps --> + +<!ENTITY % Shape "(rect|circle|poly|default)"> + +<!ENTITY % Coords "CDATA"> + <!-- comma separated list of lengths --> + +<!-- used for object, applet, img, input and iframe --> +<!ENTITY % ImgAlign "(top|middle|bottom|left|right)"> + +<!-- a color using sRGB: #RRGGBB as Hex values --> +<!ENTITY % Color "CDATA"> + +<!-- There are also 16 widely known color names with their sRGB values: + + Black = #000000 Green = #008000 + Silver = #C0C0C0 Lime = #00FF00 + Gray = #808080 Olive = #808000 + White = #FFFFFF Yellow = #FFFF00 + Maroon = #800000 Navy = #000080 + Red = #FF0000 Blue = #0000FF + Purple = #800080 Teal = #008080 + Fuchsia= #FF00FF Aqua = #00FFFF +--> + +<!--=================== Generic Attributes ===============================--> + +<!-- core attributes common to most elements + id document-wide unique id + class space separated list of classes + style associated style info + title advisory title/amplification +--> +<!ENTITY % coreattrs + "id ID #IMPLIED + class CDATA #IMPLIED + style %StyleSheet; #IMPLIED + title %Text; #IMPLIED" + > + +<!-- internationalization attributes + lang language code (backwards compatible) + xml:lang language code (as per XML 1.0 spec) + dir direction for weak/neutral text +--> +<!ENTITY % i18n + "lang %LanguageCode; #IMPLIED + xml:lang %LanguageCode; #IMPLIED + dir (ltr|rtl) #IMPLIED" + > + +<!-- attributes for common UI events + onclick a pointer button was clicked + ondblclick a pointer button was double clicked + onmousedown a pointer button was pressed down + onmouseup a pointer button was released + onmousemove a pointer was moved onto the element + onmouseout a pointer was moved away from the element + onkeypress a key was pressed and released + onkeydown a key was pressed down + onkeyup a key was released +--> +<!ENTITY % events + "onclick %Script; #IMPLIED + ondblclick %Script; #IMPLIED + onmousedown %Script; #IMPLIED + onmouseup %Script; #IMPLIED + onmouseover %Script; #IMPLIED + onmousemove %Script; #IMPLIED + onmouseout %Script; #IMPLIED + onkeypress %Script; #IMPLIED + onkeydown %Script; #IMPLIED + onkeyup %Script; #IMPLIED" + > + +<!-- attributes for elements that can get the focus + accesskey accessibility key character + tabindex position in tabbing order + onfocus the element got the focus + onblur the element lost the focus +--> +<!ENTITY % focus + "accesskey %Character; #IMPLIED + tabindex %Number; #IMPLIED + onfocus %Script; #IMPLIED + onblur %Script; #IMPLIED" + > + +<!ENTITY % attrs "%coreattrs; %i18n; %events;"> + +<!-- text alignment for p, div, h1-h6. The default is + align="left" for ltr headings, "right" for rtl --> + +<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED"> + +<!--=================== Text Elements ====================================--> + +<!ENTITY % special.extra + "object | applet | img | map | iframe"> + +<!ENTITY % special.basic + "br | span | bdo"> + +<!ENTITY % special + "%special.basic; | %special.extra;"> + +<!ENTITY % fontstyle.extra "big | small | font | basefont"> + +<!ENTITY % fontstyle.basic "tt | i | b | u + | s | strike "> + +<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;"> + +<!ENTITY % phrase.extra "sub | sup"> +<!ENTITY % phrase.basic "em | strong | dfn | code | q | + samp | kbd | var | cite | abbr | acronym"> + +<!ENTITY % phrase "%phrase.basic; | %phrase.extra;"> + +<!ENTITY % inline.forms "input | select | textarea | label | button"> + +<!-- these can occur at block or inline level --> +<!ENTITY % misc.inline "ins | del | script"> + +<!-- these can only occur at block level --> +<!ENTITY % misc "noscript | %misc.inline;"> + + +<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;"> + +<!-- %Inline; covers inline or "text-level" elements --> +<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*"> + +<!--================== Block level elements ==============================--> + +<!ENTITY % heading "h1|h2|h3|h4|h5|h6"> +<!ENTITY % lists "ul | ol | dl | menu | dir"> +<!ENTITY % blocktext "pre | hr | blockquote | address | center"> + +<!ENTITY % block + "p | %heading; | div | %lists; | %blocktext; | isindex | fieldset | table"> + +<!-- %Flow; mixes block and inline and is used for list items etc. --> +<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*"> + +<!--================== Content models for exclusions =====================--> + +<!-- a elements use %Inline; excluding a --> + +<!ENTITY % a.content + "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*"> + +<!-- pre uses %Inline excluding img, object, applet, big, small, + sub, sup, font, or basefont --> + +<!ENTITY % pre.content + "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; | + %inline.forms; | %misc.inline;)*"> + + +<!-- form uses %Flow; excluding form --> + +<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*"> + +<!-- button uses %Flow; but excludes a, form, form controls, iframe --> + +<!ENTITY % button.content + "(#PCDATA | p | %heading; | div | %lists; | %blocktext; | + table | br | span | bdo | object | applet | img | map | + %fontstyle; | %phrase; | %misc;)*"> + +<!--================ Document Structure ==================================--> + +<!-- the namespace URI designates the document profile --> + +<!ELEMENT html (head, frameset)> +<!ATTLIST html + %i18n; + id ID #IMPLIED + xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml' + > + +<!--================ Document Head =======================================--> + +<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*"> + +<!-- content model is %head.misc; combined with a single + title and an optional base element in any order --> + +<!ELEMENT head (%head.misc;, + ((title, %head.misc;, (base, %head.misc;)?) | + (base, %head.misc;, (title, %head.misc;))))> + +<!ATTLIST head + %i18n; + id ID #IMPLIED + profile %URI; #IMPLIED + > + +<!-- The title element is not considered part of the flow of text. + It should be displayed, for example as the page header or + window title. Exactly one title is required per document. + --> +<!ELEMENT title (#PCDATA)> +<!ATTLIST title + %i18n; + id ID #IMPLIED + > + +<!-- document base URI --> + +<!ELEMENT base EMPTY> +<!ATTLIST base + id ID #IMPLIED + href %URI; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!-- generic metainformation --> +<!ELEMENT meta EMPTY> +<!ATTLIST meta + %i18n; + id ID #IMPLIED + http-equiv CDATA #IMPLIED + name CDATA #IMPLIED + content CDATA #REQUIRED + scheme CDATA #IMPLIED + > + +<!-- + Relationship values can be used in principle: + + a) for document specific toolbars/menus when used + with the link element in document head e.g. + start, contents, previous, next, index, end, help + b) to link to a separate style sheet (rel="stylesheet") + c) to make a link to a script (rel="script") + d) by stylesheets to control how collections of + html nodes are rendered into printed documents + e) to make a link to a printable version of this document + e.g. a PostScript or PDF version (rel="alternate" media="print") +--> + +<!ELEMENT link EMPTY> +<!ATTLIST link + %attrs; + charset %Charset; #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + type %ContentType; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + media %MediaDesc; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!-- style info, which may include CDATA sections --> +<!ELEMENT style (#PCDATA)> +<!ATTLIST style + %i18n; + id ID #IMPLIED + type %ContentType; #REQUIRED + media %MediaDesc; #IMPLIED + title %Text; #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- script statements, which may include CDATA sections --> +<!ELEMENT script (#PCDATA)> +<!ATTLIST script + id ID #IMPLIED + charset %Charset; #IMPLIED + type %ContentType; #REQUIRED + language CDATA #IMPLIED + src %URI; #IMPLIED + defer (defer) #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- alternate content container for non script-based rendering --> + +<!ELEMENT noscript %Flow;> +<!ATTLIST noscript + %attrs; + > + +<!--======================= Frames =======================================--> + +<!-- only one noframes element permitted per document --> + +<!ELEMENT frameset (frameset|frame|noframes)*> +<!ATTLIST frameset + %coreattrs; + rows %MultiLengths; #IMPLIED + cols %MultiLengths; #IMPLIED + onload %Script; #IMPLIED + onunload %Script; #IMPLIED + > + +<!-- reserved frame names start with "_" otherwise starts with letter --> + +<!-- tiled window within frameset --> + +<!ELEMENT frame EMPTY> +<!ATTLIST frame + %coreattrs; + longdesc %URI; #IMPLIED + name NMTOKEN #IMPLIED + src %URI; #IMPLIED + frameborder (1|0) "1" + marginwidth %Pixels; #IMPLIED + marginheight %Pixels; #IMPLIED + noresize (noresize) #IMPLIED + scrolling (yes|no|auto) "auto" + > + +<!-- inline subwindow --> + +<!ELEMENT iframe %Flow;> +<!ATTLIST iframe + %coreattrs; + longdesc %URI; #IMPLIED + name NMTOKEN #IMPLIED + src %URI; #IMPLIED + frameborder (1|0) "1" + marginwidth %Pixels; #IMPLIED + marginheight %Pixels; #IMPLIED + scrolling (yes|no|auto) "auto" + align %ImgAlign; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + > + +<!-- alternate content container for non frame-based rendering --> + +<!ELEMENT noframes (body)> +<!ATTLIST noframes + %attrs; + > + +<!--=================== Document Body ====================================--> + +<!ELEMENT body %Flow;> +<!ATTLIST body + %attrs; + onload %Script; #IMPLIED + onunload %Script; #IMPLIED + background %URI; #IMPLIED + bgcolor %Color; #IMPLIED + text %Color; #IMPLIED + link %Color; #IMPLIED + vlink %Color; #IMPLIED + alink %Color; #IMPLIED + > + +<!ELEMENT div %Flow;> <!-- generic language/style container --> +<!ATTLIST div + %attrs; + %TextAlign; + > + +<!--=================== Paragraphs =======================================--> + +<!ELEMENT p %Inline;> +<!ATTLIST p + %attrs; + %TextAlign; + > + +<!--=================== Headings =========================================--> + +<!-- + There are six levels of headings from h1 (the most important) + to h6 (the least important). +--> + +<!ELEMENT h1 %Inline;> +<!ATTLIST h1 + %attrs; + %TextAlign; + > + +<!ELEMENT h2 %Inline;> +<!ATTLIST h2 + %attrs; + %TextAlign; + > + +<!ELEMENT h3 %Inline;> +<!ATTLIST h3 + %attrs; + %TextAlign; + > + +<!ELEMENT h4 %Inline;> +<!ATTLIST h4 + %attrs; + %TextAlign; + > + +<!ELEMENT h5 %Inline;> +<!ATTLIST h5 + %attrs; + %TextAlign; + > + +<!ELEMENT h6 %Inline;> +<!ATTLIST h6 + %attrs; + %TextAlign; + > + +<!--=================== Lists ============================================--> + +<!-- Unordered list bullet styles --> + +<!ENTITY % ULStyle "(disc|square|circle)"> + +<!-- Unordered list --> + +<!ELEMENT ul (li)+> +<!ATTLIST ul + %attrs; + type %ULStyle; #IMPLIED + compact (compact) #IMPLIED + > + +<!-- Ordered list numbering style + + 1 arabic numbers 1, 2, 3, ... + a lower alpha a, b, c, ... + A upper alpha A, B, C, ... + i lower roman i, ii, iii, ... + I upper roman I, II, III, ... + + The style is applied to the sequence number which by default + is reset to 1 for the first list item in an ordered list. +--> +<!ENTITY % OLStyle "CDATA"> + +<!-- Ordered (numbered) list --> + +<!ELEMENT ol (li)+> +<!ATTLIST ol + %attrs; + type %OLStyle; #IMPLIED + compact (compact) #IMPLIED + start %Number; #IMPLIED + > + +<!-- single column list (DEPRECATED) --> +<!ELEMENT menu (li)+> +<!ATTLIST menu + %attrs; + compact (compact) #IMPLIED + > + +<!-- multiple column list (DEPRECATED) --> +<!ELEMENT dir (li)+> +<!ATTLIST dir + %attrs; + compact (compact) #IMPLIED + > + +<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" --> +<!ENTITY % LIStyle "CDATA"> + +<!-- list item --> + +<!ELEMENT li %Flow;> +<!ATTLIST li + %attrs; + type %LIStyle; #IMPLIED + value %Number; #IMPLIED + > + +<!-- definition lists - dt for term, dd for its definition --> + +<!ELEMENT dl (dt|dd)+> +<!ATTLIST dl + %attrs; + compact (compact) #IMPLIED + > + +<!ELEMENT dt %Inline;> +<!ATTLIST dt + %attrs; + > + +<!ELEMENT dd %Flow;> +<!ATTLIST dd + %attrs; + > + +<!--=================== Address ==========================================--> + +<!-- information on author --> + +<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*> +<!ATTLIST address + %attrs; + > + +<!--=================== Horizontal Rule ==================================--> + +<!ELEMENT hr EMPTY> +<!ATTLIST hr + %attrs; + align (left|center|right) #IMPLIED + noshade (noshade) #IMPLIED + size %Pixels; #IMPLIED + width %Length; #IMPLIED + > + +<!--=================== Preformatted Text ================================--> + +<!-- content is %Inline; excluding + "img|object|applet|big|small|sub|sup|font|basefont" --> + +<!ELEMENT pre %pre.content;> +<!ATTLIST pre + %attrs; + width %Number; #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!--=================== Block-like Quotes ================================--> + +<!ELEMENT blockquote %Flow;> +<!ATTLIST blockquote + %attrs; + cite %URI; #IMPLIED + > + +<!--=================== Text alignment ===================================--> + +<!-- center content --> +<!ELEMENT center %Flow;> +<!ATTLIST center + %attrs; + > + +<!--=================== Inserted/Deleted Text ============================--> + + +<!-- + ins/del are allowed in block and inline content, but its + inappropriate to include block content within an ins element + occurring in inline content. +--> +<!ELEMENT ins %Flow;> +<!ATTLIST ins + %attrs; + cite %URI; #IMPLIED + datetime %Datetime; #IMPLIED + > + +<!ELEMENT del %Flow;> +<!ATTLIST del + %attrs; + cite %URI; #IMPLIED + datetime %Datetime; #IMPLIED + > + +<!--================== The Anchor Element ================================--> + +<!-- content is %Inline; except that anchors shouldn't be nested --> + +<!ELEMENT a %a.content;> +<!ATTLIST a + %attrs; + %focus; + charset %Charset; #IMPLIED + type %ContentType; #IMPLIED + name NMTOKEN #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + shape %Shape; "rect" + coords %Coords; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!--===================== Inline Elements ================================--> + +<!ELEMENT span %Inline;> <!-- generic language/style container --> +<!ATTLIST span + %attrs; + > + +<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride --> +<!ATTLIST bdo + %coreattrs; + %events; + lang %LanguageCode; #IMPLIED + xml:lang %LanguageCode; #IMPLIED + dir (ltr|rtl) #REQUIRED + > + +<!ELEMENT br EMPTY> <!-- forced line break --> +<!ATTLIST br + %coreattrs; + clear (left|all|right|none) "none" + > + +<!ELEMENT em %Inline;> <!-- emphasis --> +<!ATTLIST em %attrs;> + +<!ELEMENT strong %Inline;> <!-- strong emphasis --> +<!ATTLIST strong %attrs;> + +<!ELEMENT dfn %Inline;> <!-- definitional --> +<!ATTLIST dfn %attrs;> + +<!ELEMENT code %Inline;> <!-- program code --> +<!ATTLIST code %attrs;> + +<!ELEMENT samp %Inline;> <!-- sample --> +<!ATTLIST samp %attrs;> + +<!ELEMENT kbd %Inline;> <!-- something user would type --> +<!ATTLIST kbd %attrs;> + +<!ELEMENT var %Inline;> <!-- variable --> +<!ATTLIST var %attrs;> + +<!ELEMENT cite %Inline;> <!-- citation --> +<!ATTLIST cite %attrs;> + +<!ELEMENT abbr %Inline;> <!-- abbreviation --> +<!ATTLIST abbr %attrs;> + +<!ELEMENT acronym %Inline;> <!-- acronym --> +<!ATTLIST acronym %attrs;> + +<!ELEMENT q %Inline;> <!-- inlined quote --> +<!ATTLIST q + %attrs; + cite %URI; #IMPLIED + > + +<!ELEMENT sub %Inline;> <!-- subscript --> +<!ATTLIST sub %attrs;> + +<!ELEMENT sup %Inline;> <!-- superscript --> +<!ATTLIST sup %attrs;> + +<!ELEMENT tt %Inline;> <!-- fixed pitch font --> +<!ATTLIST tt %attrs;> + +<!ELEMENT i %Inline;> <!-- italic font --> +<!ATTLIST i %attrs;> + +<!ELEMENT b %Inline;> <!-- bold font --> +<!ATTLIST b %attrs;> + +<!ELEMENT big %Inline;> <!-- bigger font --> +<!ATTLIST big %attrs;> + +<!ELEMENT small %Inline;> <!-- smaller font --> +<!ATTLIST small %attrs;> + +<!ELEMENT u %Inline;> <!-- underline --> +<!ATTLIST u %attrs;> + +<!ELEMENT s %Inline;> <!-- strike-through --> +<!ATTLIST s %attrs;> + +<!ELEMENT strike %Inline;> <!-- strike-through --> +<!ATTLIST strike %attrs;> + +<!ELEMENT basefont EMPTY> <!-- base font size --> +<!ATTLIST basefont + id ID #IMPLIED + size CDATA #REQUIRED + color %Color; #IMPLIED + face CDATA #IMPLIED + > + +<!ELEMENT font %Inline;> <!-- local change to font --> +<!ATTLIST font + %coreattrs; + %i18n; + size CDATA #IMPLIED + color %Color; #IMPLIED + face CDATA #IMPLIED + > + +<!--==================== Object ======================================--> +<!-- + object is used to embed objects as part of HTML pages. + param elements should precede other content. Parameters + can also be expressed as attribute/value pairs on the + object element itself when brevity is desired. +--> + +<!ELEMENT object (#PCDATA | param | %block; | form |%inline; | %misc;)*> +<!ATTLIST object + %attrs; + declare (declare) #IMPLIED + classid %URI; #IMPLIED + codebase %URI; #IMPLIED + data %URI; #IMPLIED + type %ContentType; #IMPLIED + codetype %ContentType; #IMPLIED + archive %UriList; #IMPLIED + standby %Text; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + usemap %URI; #IMPLIED + name NMTOKEN #IMPLIED + tabindex %Number; #IMPLIED + align %ImgAlign; #IMPLIED + border %Pixels; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #IMPLIED + > + +<!-- + param is used to supply a named property value. + In XML it would seem natural to follow RDF and support an + abbreviated syntax where the param elements are replaced + by attribute value pairs on the object start tag. +--> +<!ELEMENT param EMPTY> +<!ATTLIST param + id ID #IMPLIED + name CDATA #REQUIRED + value CDATA #IMPLIED + valuetype (data|ref|object) "data" + type %ContentType; #IMPLIED + > + +<!--=================== Java applet ==================================--> +<!-- + One of code or object attributes must be present. + Place param elements before other content. +--> +<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*> +<!ATTLIST applet + %coreattrs; + codebase %URI; #IMPLIED + archive CDATA #IMPLIED + code CDATA #IMPLIED + object CDATA #IMPLIED + alt %Text; #IMPLIED + name NMTOKEN #IMPLIED + width %Length; #REQUIRED + height %Length; #REQUIRED + align %ImgAlign; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #IMPLIED + > + +<!--=================== Images ===========================================--> + +<!-- + To avoid accessibility problems for people who aren't + able to see the image, you should provide a text + description using the alt and longdesc attributes. + In addition, avoid the use of server-side image maps. +--> + +<!ELEMENT img EMPTY> +<!ATTLIST img + %attrs; + src %URI; #REQUIRED + alt %Text; #REQUIRED + name NMTOKEN #IMPLIED + longdesc %URI; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + usemap %URI; #IMPLIED + ismap (ismap) #IMPLIED + align %ImgAlign; #IMPLIED + border %Pixels; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #IMPLIED + > + +<!-- usemap points to a map element which may be in this document + or an external document, although the latter is not widely supported --> + +<!--================== Client-side image maps ============================--> + +<!-- These can be placed in the same document or grouped in a + separate document although this isn't yet widely supported --> + +<!ELEMENT map ((%block; | form | %misc;)+ | area+)> +<!ATTLIST map + %i18n; + %events; + id ID #REQUIRED + class CDATA #IMPLIED + style %StyleSheet; #IMPLIED + title %Text; #IMPLIED + name NMTOKEN #IMPLIED + > + +<!ELEMENT area EMPTY> +<!ATTLIST area + %attrs; + %focus; + shape %Shape; "rect" + coords %Coords; #IMPLIED + href %URI; #IMPLIED + nohref (nohref) #IMPLIED + alt %Text; #REQUIRED + target %FrameTarget; #IMPLIED + > + +<!--================ Forms ===============================================--> + +<!ELEMENT form %form.content;> <!-- forms shouldn't be nested --> + +<!ATTLIST form + %attrs; + action %URI; #REQUIRED + method (get|post) "get" + name NMTOKEN #IMPLIED + enctype %ContentType; "application/x-www-form-urlencoded" + onsubmit %Script; #IMPLIED + onreset %Script; #IMPLIED + accept %ContentTypes; #IMPLIED + accept-charset %Charsets; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!-- + Each label must not contain more than ONE field + Label elements shouldn't be nested. +--> +<!ELEMENT label %Inline;> +<!ATTLIST label + %attrs; + for IDREF #IMPLIED + accesskey %Character; #IMPLIED + onfocus %Script; #IMPLIED + onblur %Script; #IMPLIED + > + +<!ENTITY % InputType + "(text | password | checkbox | + radio | submit | reset | + file | hidden | image | button)" + > + +<!-- the name attribute is required for all but submit & reset --> + +<!ELEMENT input EMPTY> <!-- form control --> +<!ATTLIST input + %attrs; + %focus; + type %InputType; "text" + name CDATA #IMPLIED + value CDATA #IMPLIED + checked (checked) #IMPLIED + disabled (disabled) #IMPLIED + readonly (readonly) #IMPLIED + size CDATA #IMPLIED + maxlength %Number; #IMPLIED + src %URI; #IMPLIED + alt CDATA #IMPLIED + usemap %URI; #IMPLIED + onselect %Script; #IMPLIED + onchange %Script; #IMPLIED + accept %ContentTypes; #IMPLIED + align %ImgAlign; #IMPLIED + > + +<!ELEMENT select (optgroup|option)+> <!-- option selector --> +<!ATTLIST select + %attrs; + name CDATA #IMPLIED + size %Number; #IMPLIED + multiple (multiple) #IMPLIED + disabled (disabled) #IMPLIED + tabindex %Number; #IMPLIED + onfocus %Script; #IMPLIED + onblur %Script; #IMPLIED + onchange %Script; #IMPLIED + > + +<!ELEMENT optgroup (option)+> <!-- option group --> +<!ATTLIST optgroup + %attrs; + disabled (disabled) #IMPLIED + label %Text; #REQUIRED + > + +<!ELEMENT option (#PCDATA)> <!-- selectable choice --> +<!ATTLIST option + %attrs; + selected (selected) #IMPLIED + disabled (disabled) #IMPLIED + label %Text; #IMPLIED + value CDATA #IMPLIED + > + +<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field --> +<!ATTLIST textarea + %attrs; + %focus; + name CDATA #IMPLIED + rows %Number; #REQUIRED + cols %Number; #REQUIRED + disabled (disabled) #IMPLIED + readonly (readonly) #IMPLIED + onselect %Script; #IMPLIED + onchange %Script; #IMPLIED + > + +<!-- + The fieldset element is used to group form fields. + Only one legend element should occur in the content + and if present should only be preceded by whitespace. +--> +<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*> +<!ATTLIST fieldset + %attrs; + > + +<!ENTITY % LAlign "(top|bottom|left|right)"> + +<!ELEMENT legend %Inline;> <!-- fieldset label --> +<!ATTLIST legend + %attrs; + accesskey %Character; #IMPLIED + align %LAlign; #IMPLIED + > + +<!-- + Content is %Flow; excluding a, form, form controls, iframe +--> +<!ELEMENT button %button.content;> <!-- push button --> +<!ATTLIST button + %attrs; + %focus; + name CDATA #IMPLIED + value CDATA #IMPLIED + type (button|submit|reset) "submit" + disabled (disabled) #IMPLIED + > + +<!-- single-line text input control (DEPRECATED) --> +<!ELEMENT isindex EMPTY> +<!ATTLIST isindex + %coreattrs; + %i18n; + prompt %Text; #IMPLIED + > + +<!--======================= Tables =======================================--> + +<!-- Derived from IETF HTML table standard, see [RFC1942] --> + +<!-- + The border attribute sets the thickness of the frame around the + table. The default units are screen pixels. + + The frame attribute specifies which parts of the frame around + the table should be rendered. The values are not the same as + CALS to avoid a name clash with the valign attribute. +--> +<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)"> + +<!-- + The rules attribute defines which rules to draw between cells: + + If rules is absent then assume: + "none" if border is absent or border="0" otherwise "all" +--> + +<!ENTITY % TRules "(none | groups | rows | cols | all)"> + +<!-- horizontal placement of table relative to document --> +<!ENTITY % TAlign "(left|center|right)"> + +<!-- horizontal alignment attributes for cell contents + + char alignment char, e.g. char=":" + charoff offset for alignment char +--> +<!ENTITY % cellhalign + "align (left|center|right|justify|char) #IMPLIED + char %Character; #IMPLIED + charoff %Length; #IMPLIED" + > + +<!-- vertical alignment attributes for cell contents --> +<!ENTITY % cellvalign + "valign (top|middle|bottom|baseline) #IMPLIED" + > + +<!ELEMENT table + (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))> +<!ELEMENT caption %Inline;> +<!ELEMENT thead (tr)+> +<!ELEMENT tfoot (tr)+> +<!ELEMENT tbody (tr)+> +<!ELEMENT colgroup (col)*> +<!ELEMENT col EMPTY> +<!ELEMENT tr (th|td)+> +<!ELEMENT th %Flow;> +<!ELEMENT td %Flow;> + +<!ATTLIST table + %attrs; + summary %Text; #IMPLIED + width %Length; #IMPLIED + border %Pixels; #IMPLIED + frame %TFrame; #IMPLIED + rules %TRules; #IMPLIED + cellspacing %Length; #IMPLIED + cellpadding %Length; #IMPLIED + align %TAlign; #IMPLIED + bgcolor %Color; #IMPLIED + > + +<!ENTITY % CAlign "(top|bottom|left|right)"> + +<!ATTLIST caption + %attrs; + align %CAlign; #IMPLIED + > + +<!-- +colgroup groups a set of col elements. It allows you to group +several semantically related columns together. +--> +<!ATTLIST colgroup + %attrs; + span %Number; "1" + width %MultiLength; #IMPLIED + %cellhalign; + %cellvalign; + > + +<!-- + col elements define the alignment properties for cells in + one or more columns. + + The width attribute specifies the width of the columns, e.g. + + width=64 width in screen pixels + width=0.5* relative width of 0.5 + + The span attribute causes the attributes of one + col element to apply to more than one column. +--> +<!ATTLIST col + %attrs; + span %Number; "1" + width %MultiLength; #IMPLIED + %cellhalign; + %cellvalign; + > + +<!-- + Use thead to duplicate headers when breaking table + across page boundaries, or for static headers when + tbody sections are rendered in scrolling panel. + + Use tfoot to duplicate footers when breaking table + across page boundaries, or for static footers when + tbody sections are rendered in scrolling panel. + + Use multiple tbody sections when rules are needed + between groups of table rows. +--> +<!ATTLIST thead + %attrs; + %cellhalign; + %cellvalign; + > + +<!ATTLIST tfoot + %attrs; + %cellhalign; + %cellvalign; + > + +<!ATTLIST tbody + %attrs; + %cellhalign; + %cellvalign; + > + +<!ATTLIST tr + %attrs; + %cellhalign; + %cellvalign; + bgcolor %Color; #IMPLIED + > + +<!-- Scope is simpler than headers attribute for common tables --> +<!ENTITY % Scope "(row|col|rowgroup|colgroup)"> + +<!-- th is for headers, td for data and for cells acting as both --> + +<!ATTLIST th + %attrs; + abbr %Text; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + scope %Scope; #IMPLIED + rowspan %Number; "1" + colspan %Number; "1" + %cellhalign; + %cellvalign; + nowrap (nowrap) #IMPLIED + bgcolor %Color; #IMPLIED + width %Pixels; #IMPLIED + height %Pixels; #IMPLIED + > + +<!ATTLIST td + %attrs; + abbr %Text; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + scope %Scope; #IMPLIED + rowspan %Number; "1" + colspan %Number; "1" + %cellhalign; + %cellvalign; + nowrap (nowrap) #IMPLIED + bgcolor %Color; #IMPLIED + width %Pixels; #IMPLIED + height %Pixels; #IMPLIED + > + diff --git a/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml1-strict.dtd b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml1-strict.dtd new file mode 100644 index 0000000..fb87f6e --- /dev/null +++ b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml1-strict.dtd @@ -0,0 +1,978 @@ +<!-- + Extensible HTML version 1.0 Strict DTD + + This is the same as HTML 4 Strict except for + changes due to the differences between XML and SGML. + + Namespace = http://www.w3.org/1999/xhtml + + For further information, see: http://www.w3.org/TR/xhtml1 + + Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio), + All Rights Reserved. + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" + + $Revision: 1.1.2.1 $ + $Date: 2002/08/19 02:07:44 $ + +--> + +<!--================ Character mnemonic entities =========================--> + +<!ENTITY % HTMLlat1 PUBLIC + "-//W3C//ENTITIES Latin 1 for XHTML//EN" + "xhtml-lat1.ent"> +%HTMLlat1; + +<!ENTITY % HTMLsymbol PUBLIC + "-//W3C//ENTITIES Symbols for XHTML//EN" + "xhtml-symbol.ent"> +%HTMLsymbol; + +<!ENTITY % HTMLspecial PUBLIC + "-//W3C//ENTITIES Special for XHTML//EN" + "xhtml-special.ent"> +%HTMLspecial; + +<!--================== Imported Names ====================================--> + +<!ENTITY % ContentType "CDATA"> + <!-- media type, as per [RFC2045] --> + +<!ENTITY % ContentTypes "CDATA"> + <!-- comma-separated list of media types, as per [RFC2045] --> + +<!ENTITY % Charset "CDATA"> + <!-- a character encoding, as per [RFC2045] --> + +<!ENTITY % Charsets "CDATA"> + <!-- a space separated list of character encodings, as per [RFC2045] --> + +<!ENTITY % LanguageCode "NMTOKEN"> + <!-- a language code, as per [RFC3066] --> + +<!ENTITY % Character "CDATA"> + <!-- a single character, as per section 2.2 of [XML] --> + +<!ENTITY % Number "CDATA"> + <!-- one or more digits --> + +<!ENTITY % LinkTypes "CDATA"> + <!-- space-separated list of link types --> + +<!ENTITY % MediaDesc "CDATA"> + <!-- single or comma-separated list of media descriptors --> + +<!ENTITY % URI "CDATA"> + <!-- a Uniform Resource Identifier, see [RFC2396] --> + +<!ENTITY % UriList "CDATA"> + <!-- a space separated list of Uniform Resource Identifiers --> + +<!ENTITY % Datetime "CDATA"> + <!-- date and time information. ISO date format --> + +<!ENTITY % Script "CDATA"> + <!-- script expression --> + +<!ENTITY % StyleSheet "CDATA"> + <!-- style sheet data --> + +<!ENTITY % Text "CDATA"> + <!-- used for titles etc. --> + +<!ENTITY % Length "CDATA"> + <!-- nn for pixels or nn% for percentage length --> + +<!ENTITY % MultiLength "CDATA"> + <!-- pixel, percentage, or relative --> + +<!ENTITY % Pixels "CDATA"> + <!-- integer representing length in pixels --> + +<!-- these are used for image maps --> + +<!ENTITY % Shape "(rect|circle|poly|default)"> + +<!ENTITY % Coords "CDATA"> + <!-- comma separated list of lengths --> + +<!--=================== Generic Attributes ===============================--> + +<!-- core attributes common to most elements + id document-wide unique id + class space separated list of classes + style associated style info + title advisory title/amplification +--> +<!ENTITY % coreattrs + "id ID #IMPLIED + class CDATA #IMPLIED + style %StyleSheet; #IMPLIED + title %Text; #IMPLIED" + > + +<!-- internationalization attributes + lang language code (backwards compatible) + xml:lang language code (as per XML 1.0 spec) + dir direction for weak/neutral text +--> +<!ENTITY % i18n + "lang %LanguageCode; #IMPLIED + xml:lang %LanguageCode; #IMPLIED + dir (ltr|rtl) #IMPLIED" + > + +<!-- attributes for common UI events + onclick a pointer button was clicked + ondblclick a pointer button was double clicked + onmousedown a pointer button was pressed down + onmouseup a pointer button was released + onmousemove a pointer was moved onto the element + onmouseout a pointer was moved away from the element + onkeypress a key was pressed and released + onkeydown a key was pressed down + onkeyup a key was released +--> +<!ENTITY % events + "onclick %Script; #IMPLIED + ondblclick %Script; #IMPLIED + onmousedown %Script; #IMPLIED + onmouseup %Script; #IMPLIED + onmouseover %Script; #IMPLIED + onmousemove %Script; #IMPLIED + onmouseout %Script; #IMPLIED + onkeypress %Script; #IMPLIED + onkeydown %Script; #IMPLIED + onkeyup %Script; #IMPLIED" + > + +<!-- attributes for elements that can get the focus + accesskey accessibility key character + tabindex position in tabbing order + onfocus the element got the focus + onblur the element lost the focus +--> +<!ENTITY % focus + "accesskey %Character; #IMPLIED + tabindex %Number; #IMPLIED + onfocus %Script; #IMPLIED + onblur %Script; #IMPLIED" + > + +<!ENTITY % attrs "%coreattrs; %i18n; %events;"> + +<!--=================== Text Elements ====================================--> + +<!ENTITY % special.pre + "br | span | bdo | map"> + + +<!ENTITY % special + "%special.pre; | object | img "> + +<!ENTITY % fontstyle "tt | i | b | big | small "> + +<!ENTITY % phrase "em | strong | dfn | code | q | + samp | kbd | var | cite | abbr | acronym | sub | sup "> + +<!ENTITY % inline.forms "input | select | textarea | label | button"> + +<!-- these can occur at block or inline level --> +<!ENTITY % misc.inline "ins | del | script"> + +<!-- these can only occur at block level --> +<!ENTITY % misc "noscript | %misc.inline;"> + +<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;"> + +<!-- %Inline; covers inline or "text-level" elements --> +<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*"> + +<!--================== Block level elements ==============================--> + +<!ENTITY % heading "h1|h2|h3|h4|h5|h6"> +<!ENTITY % lists "ul | ol | dl"> +<!ENTITY % blocktext "pre | hr | blockquote | address"> + +<!ENTITY % block + "p | %heading; | div | %lists; | %blocktext; | fieldset | table"> + +<!ENTITY % Block "(%block; | form | %misc;)*"> + +<!-- %Flow; mixes block and inline and is used for list items etc. --> +<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*"> + +<!--================== Content models for exclusions =====================--> + +<!-- a elements use %Inline; excluding a --> + +<!ENTITY % a.content + "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*"> + +<!-- pre uses %Inline excluding big, small, sup or sup --> + +<!ENTITY % pre.content + "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline; + | %inline.forms;)*"> + +<!-- form uses %Block; excluding form --> + +<!ENTITY % form.content "(%block; | %misc;)*"> + +<!-- button uses %Flow; but excludes a, form and form controls --> + +<!ENTITY % button.content + "(#PCDATA | p | %heading; | div | %lists; | %blocktext; | + table | %special; | %fontstyle; | %phrase; | %misc;)*"> + +<!--================ Document Structure ==================================--> + +<!-- the namespace URI designates the document profile --> + +<!ELEMENT html (head, body)> +<!ATTLIST html + %i18n; + id ID #IMPLIED + xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml' + > + +<!--================ Document Head =======================================--> + +<!ENTITY % head.misc "(script|style|meta|link|object)*"> + +<!-- content model is %head.misc; combined with a single + title and an optional base element in any order --> + +<!ELEMENT head (%head.misc;, + ((title, %head.misc;, (base, %head.misc;)?) | + (base, %head.misc;, (title, %head.misc;))))> + +<!ATTLIST head + %i18n; + id ID #IMPLIED + profile %URI; #IMPLIED + > + +<!-- The title element is not considered part of the flow of text. + It should be displayed, for example as the page header or + window title. Exactly one title is required per document. + --> +<!ELEMENT title (#PCDATA)> +<!ATTLIST title + %i18n; + id ID #IMPLIED + > + +<!-- document base URI --> + +<!ELEMENT base EMPTY> +<!ATTLIST base + href %URI; #REQUIRED + id ID #IMPLIED + > + +<!-- generic metainformation --> +<!ELEMENT meta EMPTY> +<!ATTLIST meta + %i18n; + id ID #IMPLIED + http-equiv CDATA #IMPLIED + name CDATA #IMPLIED + content CDATA #REQUIRED + scheme CDATA #IMPLIED + > + +<!-- + Relationship values can be used in principle: + + a) for document specific toolbars/menus when used + with the link element in document head e.g. + start, contents, previous, next, index, end, help + b) to link to a separate style sheet (rel="stylesheet") + c) to make a link to a script (rel="script") + d) by stylesheets to control how collections of + html nodes are rendered into printed documents + e) to make a link to a printable version of this document + e.g. a PostScript or PDF version (rel="alternate" media="print") +--> + +<!ELEMENT link EMPTY> +<!ATTLIST link + %attrs; + charset %Charset; #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + type %ContentType; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + media %MediaDesc; #IMPLIED + > + +<!-- style info, which may include CDATA sections --> +<!ELEMENT style (#PCDATA)> +<!ATTLIST style + %i18n; + id ID #IMPLIED + type %ContentType; #REQUIRED + media %MediaDesc; #IMPLIED + title %Text; #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- script statements, which may include CDATA sections --> +<!ELEMENT script (#PCDATA)> +<!ATTLIST script + id ID #IMPLIED + charset %Charset; #IMPLIED + type %ContentType; #REQUIRED + src %URI; #IMPLIED + defer (defer) #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- alternate content container for non script-based rendering --> + +<!ELEMENT noscript %Block;> +<!ATTLIST noscript + %attrs; + > + +<!--=================== Document Body ====================================--> + +<!ELEMENT body %Block;> +<!ATTLIST body + %attrs; + onload %Script; #IMPLIED + onunload %Script; #IMPLIED + > + +<!ELEMENT div %Flow;> <!-- generic language/style container --> +<!ATTLIST div + %attrs; + > + +<!--=================== Paragraphs =======================================--> + +<!ELEMENT p %Inline;> +<!ATTLIST p + %attrs; + > + +<!--=================== Headings =========================================--> + +<!-- + There are six levels of headings from h1 (the most important) + to h6 (the least important). +--> + +<!ELEMENT h1 %Inline;> +<!ATTLIST h1 + %attrs; + > + +<!ELEMENT h2 %Inline;> +<!ATTLIST h2 + %attrs; + > + +<!ELEMENT h3 %Inline;> +<!ATTLIST h3 + %attrs; + > + +<!ELEMENT h4 %Inline;> +<!ATTLIST h4 + %attrs; + > + +<!ELEMENT h5 %Inline;> +<!ATTLIST h5 + %attrs; + > + +<!ELEMENT h6 %Inline;> +<!ATTLIST h6 + %attrs; + > + +<!--=================== Lists ============================================--> + +<!-- Unordered list --> + +<!ELEMENT ul (li)+> +<!ATTLIST ul + %attrs; + > + +<!-- Ordered (numbered) list --> + +<!ELEMENT ol (li)+> +<!ATTLIST ol + %attrs; + > + +<!-- list item --> + +<!ELEMENT li %Flow;> +<!ATTLIST li + %attrs; + > + +<!-- definition lists - dt for term, dd for its definition --> + +<!ELEMENT dl (dt|dd)+> +<!ATTLIST dl + %attrs; + > + +<!ELEMENT dt %Inline;> +<!ATTLIST dt + %attrs; + > + +<!ELEMENT dd %Flow;> +<!ATTLIST dd + %attrs; + > + +<!--=================== Address ==========================================--> + +<!-- information on author --> + +<!ELEMENT address %Inline;> +<!ATTLIST address + %attrs; + > + +<!--=================== Horizontal Rule ==================================--> + +<!ELEMENT hr EMPTY> +<!ATTLIST hr + %attrs; + > + +<!--=================== Preformatted Text ================================--> + +<!-- content is %Inline; excluding "img|object|big|small|sub|sup" --> + +<!ELEMENT pre %pre.content;> +<!ATTLIST pre + %attrs; + xml:space (preserve) #FIXED 'preserve' + > + +<!--=================== Block-like Quotes ================================--> + +<!ELEMENT blockquote %Block;> +<!ATTLIST blockquote + %attrs; + cite %URI; #IMPLIED + > + +<!--=================== Inserted/Deleted Text ============================--> + +<!-- + ins/del are allowed in block and inline content, but its + inappropriate to include block content within an ins element + occurring in inline content. +--> +<!ELEMENT ins %Flow;> +<!ATTLIST ins + %attrs; + cite %URI; #IMPLIED + datetime %Datetime; #IMPLIED + > + +<!ELEMENT del %Flow;> +<!ATTLIST del + %attrs; + cite %URI; #IMPLIED + datetime %Datetime; #IMPLIED + > + +<!--================== The Anchor Element ================================--> + +<!-- content is %Inline; except that anchors shouldn't be nested --> + +<!ELEMENT a %a.content;> +<!ATTLIST a + %attrs; + %focus; + charset %Charset; #IMPLIED + type %ContentType; #IMPLIED + name NMTOKEN #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + shape %Shape; "rect" + coords %Coords; #IMPLIED + > + +<!--===================== Inline Elements ================================--> + +<!ELEMENT span %Inline;> <!-- generic language/style container --> +<!ATTLIST span + %attrs; + > + +<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride --> +<!ATTLIST bdo + %coreattrs; + %events; + lang %LanguageCode; #IMPLIED + xml:lang %LanguageCode; #IMPLIED + dir (ltr|rtl) #REQUIRED + > + +<!ELEMENT br EMPTY> <!-- forced line break --> +<!ATTLIST br + %coreattrs; + > + +<!ELEMENT em %Inline;> <!-- emphasis --> +<!ATTLIST em %attrs;> + +<!ELEMENT strong %Inline;> <!-- strong emphasis --> +<!ATTLIST strong %attrs;> + +<!ELEMENT dfn %Inline;> <!-- definitional --> +<!ATTLIST dfn %attrs;> + +<!ELEMENT code %Inline;> <!-- program code --> +<!ATTLIST code %attrs;> + +<!ELEMENT samp %Inline;> <!-- sample --> +<!ATTLIST samp %attrs;> + +<!ELEMENT kbd %Inline;> <!-- something user would type --> +<!ATTLIST kbd %attrs;> + +<!ELEMENT var %Inline;> <!-- variable --> +<!ATTLIST var %attrs;> + +<!ELEMENT cite %Inline;> <!-- citation --> +<!ATTLIST cite %attrs;> + +<!ELEMENT abbr %Inline;> <!-- abbreviation --> +<!ATTLIST abbr %attrs;> + +<!ELEMENT acronym %Inline;> <!-- acronym --> +<!ATTLIST acronym %attrs;> + +<!ELEMENT q %Inline;> <!-- inlined quote --> +<!ATTLIST q + %attrs; + cite %URI; #IMPLIED + > + +<!ELEMENT sub %Inline;> <!-- subscript --> +<!ATTLIST sub %attrs;> + +<!ELEMENT sup %Inline;> <!-- superscript --> +<!ATTLIST sup %attrs;> + +<!ELEMENT tt %Inline;> <!-- fixed pitch font --> +<!ATTLIST tt %attrs;> + +<!ELEMENT i %Inline;> <!-- italic font --> +<!ATTLIST i %attrs;> + +<!ELEMENT b %Inline;> <!-- bold font --> +<!ATTLIST b %attrs;> + +<!ELEMENT big %Inline;> <!-- bigger font --> +<!ATTLIST big %attrs;> + +<!ELEMENT small %Inline;> <!-- smaller font --> +<!ATTLIST small %attrs;> + +<!--==================== Object ======================================--> +<!-- + object is used to embed objects as part of HTML pages. + param elements should precede other content. Parameters + can also be expressed as attribute/value pairs on the + object element itself when brevity is desired. +--> + +<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*> +<!ATTLIST object + %attrs; + declare (declare) #IMPLIED + classid %URI; #IMPLIED + codebase %URI; #IMPLIED + data %URI; #IMPLIED + type %ContentType; #IMPLIED + codetype %ContentType; #IMPLIED + archive %UriList; #IMPLIED + standby %Text; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + usemap %URI; #IMPLIED + name NMTOKEN #IMPLIED + tabindex %Number; #IMPLIED + > + +<!-- + param is used to supply a named property value. + In XML it would seem natural to follow RDF and support an + abbreviated syntax where the param elements are replaced + by attribute value pairs on the object start tag. +--> +<!ELEMENT param EMPTY> +<!ATTLIST param + id ID #IMPLIED + name CDATA #IMPLIED + value CDATA #IMPLIED + valuetype (data|ref|object) "data" + type %ContentType; #IMPLIED + > + +<!--=================== Images ===========================================--> + +<!-- + To avoid accessibility problems for people who aren't + able to see the image, you should provide a text + description using the alt and longdesc attributes. + In addition, avoid the use of server-side image maps. + Note that in this DTD there is no name attribute. That + is only available in the transitional and frameset DTD. +--> + +<!ELEMENT img EMPTY> +<!ATTLIST img + %attrs; + src %URI; #REQUIRED + alt %Text; #REQUIRED + longdesc %URI; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + usemap %URI; #IMPLIED + ismap (ismap) #IMPLIED + > + +<!-- usemap points to a map element which may be in this document + or an external document, although the latter is not widely supported --> + +<!--================== Client-side image maps ============================--> + +<!-- These can be placed in the same document or grouped in a + separate document although this isn't yet widely supported --> + +<!ELEMENT map ((%block; | form | %misc;)+ | area+)> +<!ATTLIST map + %i18n; + %events; + id ID #REQUIRED + class CDATA #IMPLIED + style %StyleSheet; #IMPLIED + title %Text; #IMPLIED + name NMTOKEN #IMPLIED + > + +<!ELEMENT area EMPTY> +<!ATTLIST area + %attrs; + %focus; + shape %Shape; "rect" + coords %Coords; #IMPLIED + href %URI; #IMPLIED + nohref (nohref) #IMPLIED + alt %Text; #REQUIRED + > + +<!--================ Forms ===============================================--> +<!ELEMENT form %form.content;> <!-- forms shouldn't be nested --> + +<!ATTLIST form + %attrs; + action %URI; #REQUIRED + method (get|post) "get" + enctype %ContentType; "application/x-www-form-urlencoded" + onsubmit %Script; #IMPLIED + onreset %Script; #IMPLIED + accept %ContentTypes; #IMPLIED + accept-charset %Charsets; #IMPLIED + > + +<!-- + Each label must not contain more than ONE field + Label elements shouldn't be nested. +--> +<!ELEMENT label %Inline;> +<!ATTLIST label + %attrs; + for IDREF #IMPLIED + accesskey %Character; #IMPLIED + onfocus %Script; #IMPLIED + onblur %Script; #IMPLIED + > + +<!ENTITY % InputType + "(text | password | checkbox | + radio | submit | reset | + file | hidden | image | button)" + > + +<!-- the name attribute is required for all but submit & reset --> + +<!ELEMENT input EMPTY> <!-- form control --> +<!ATTLIST input + %attrs; + %focus; + type %InputType; "text" + name CDATA #IMPLIED + value CDATA #IMPLIED + checked (checked) #IMPLIED + disabled (disabled) #IMPLIED + readonly (readonly) #IMPLIED + size CDATA #IMPLIED + maxlength %Number; #IMPLIED + src %URI; #IMPLIED + alt CDATA #IMPLIED + usemap %URI; #IMPLIED + onselect %Script; #IMPLIED + onchange %Script; #IMPLIED + accept %ContentTypes; #IMPLIED + > + +<!ELEMENT select (optgroup|option)+> <!-- option selector --> +<!ATTLIST select + %attrs; + name CDATA #IMPLIED + size %Number; #IMPLIED + multiple (multiple) #IMPLIED + disabled (disabled) #IMPLIED + tabindex %Number; #IMPLIED + onfocus %Script; #IMPLIED + onblur %Script; #IMPLIED + onchange %Script; #IMPLIED + > + +<!ELEMENT optgroup (option)+> <!-- option group --> +<!ATTLIST optgroup + %attrs; + disabled (disabled) #IMPLIED + label %Text; #REQUIRED + > + +<!ELEMENT option (#PCDATA)> <!-- selectable choice --> +<!ATTLIST option + %attrs; + selected (selected) #IMPLIED + disabled (disabled) #IMPLIED + label %Text; #IMPLIED + value CDATA #IMPLIED + > + +<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field --> +<!ATTLIST textarea + %attrs; + %focus; + name CDATA #IMPLIED + rows %Number; #REQUIRED + cols %Number; #REQUIRED + disabled (disabled) #IMPLIED + readonly (readonly) #IMPLIED + onselect %Script; #IMPLIED + onchange %Script; #IMPLIED + > + +<!-- + The fieldset element is used to group form fields. + Only one legend element should occur in the content + and if present should only be preceded by whitespace. +--> +<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*> +<!ATTLIST fieldset + %attrs; + > + +<!ELEMENT legend %Inline;> <!-- fieldset label --> +<!ATTLIST legend + %attrs; + accesskey %Character; #IMPLIED + > + +<!-- + Content is %Flow; excluding a, form and form controls +--> +<!ELEMENT button %button.content;> <!-- push button --> +<!ATTLIST button + %attrs; + %focus; + name CDATA #IMPLIED + value CDATA #IMPLIED + type (button|submit|reset) "submit" + disabled (disabled) #IMPLIED + > + +<!--======================= Tables =======================================--> + +<!-- Derived from IETF HTML table standard, see [RFC1942] --> + +<!-- + The border attribute sets the thickness of the frame around the + table. The default units are screen pixels. + + The frame attribute specifies which parts of the frame around + the table should be rendered. The values are not the same as + CALS to avoid a name clash with the valign attribute. +--> +<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)"> + +<!-- + The rules attribute defines which rules to draw between cells: + + If rules is absent then assume: + "none" if border is absent or border="0" otherwise "all" +--> + +<!ENTITY % TRules "(none | groups | rows | cols | all)"> + +<!-- horizontal alignment attributes for cell contents + + char alignment char, e.g. char=':' + charoff offset for alignment char +--> +<!ENTITY % cellhalign + "align (left|center|right|justify|char) #IMPLIED + char %Character; #IMPLIED + charoff %Length; #IMPLIED" + > + +<!-- vertical alignment attributes for cell contents --> +<!ENTITY % cellvalign + "valign (top|middle|bottom|baseline) #IMPLIED" + > + +<!ELEMENT table + (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))> +<!ELEMENT caption %Inline;> +<!ELEMENT thead (tr)+> +<!ELEMENT tfoot (tr)+> +<!ELEMENT tbody (tr)+> +<!ELEMENT colgroup (col)*> +<!ELEMENT col EMPTY> +<!ELEMENT tr (th|td)+> +<!ELEMENT th %Flow;> +<!ELEMENT td %Flow;> + +<!ATTLIST table + %attrs; + summary %Text; #IMPLIED + width %Length; #IMPLIED + border %Pixels; #IMPLIED + frame %TFrame; #IMPLIED + rules %TRules; #IMPLIED + cellspacing %Length; #IMPLIED + cellpadding %Length; #IMPLIED + > + +<!ATTLIST caption + %attrs; + > + +<!-- +colgroup groups a set of col elements. It allows you to group +several semantically related columns together. +--> +<!ATTLIST colgroup + %attrs; + span %Number; "1" + width %MultiLength; #IMPLIED + %cellhalign; + %cellvalign; + > + +<!-- + col elements define the alignment properties for cells in + one or more columns. + + The width attribute specifies the width of the columns, e.g. + + width=64 width in screen pixels + width=0.5* relative width of 0.5 + + The span attribute causes the attributes of one + col element to apply to more than one column. +--> +<!ATTLIST col + %attrs; + span %Number; "1" + width %MultiLength; #IMPLIED + %cellhalign; + %cellvalign; + > + +<!-- + Use thead to duplicate headers when breaking table + across page boundaries, or for static headers when + tbody sections are rendered in scrolling panel. + + Use tfoot to duplicate footers when breaking table + across page boundaries, or for static footers when + tbody sections are rendered in scrolling panel. + + Use multiple tbody sections when rules are needed + between groups of table rows. +--> +<!ATTLIST thead + %attrs; + %cellhalign; + %cellvalign; + > + +<!ATTLIST tfoot + %attrs; + %cellhalign; + %cellvalign; + > + +<!ATTLIST tbody + %attrs; + %cellhalign; + %cellvalign; + > + +<!ATTLIST tr + %attrs; + %cellhalign; + %cellvalign; + > + + +<!-- Scope is simpler than headers attribute for common tables --> +<!ENTITY % Scope "(row|col|rowgroup|colgroup)"> + +<!-- th is for headers, td for data and for cells acting as both --> + +<!ATTLIST th + %attrs; + abbr %Text; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + scope %Scope; #IMPLIED + rowspan %Number; "1" + colspan %Number; "1" + %cellhalign; + %cellvalign; + > + +<!ATTLIST td + %attrs; + abbr %Text; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + scope %Scope; #IMPLIED + rowspan %Number; "1" + colspan %Number; "1" + %cellhalign; + %cellvalign; + > + diff --git a/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml1-transitional.dtd b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml1-transitional.dtd new file mode 100644 index 0000000..0f34420 --- /dev/null +++ b/htdocs/sgml-lib/REC-xhtml1-20020801/xhtml1-transitional.dtd @@ -0,0 +1,1201 @@ +<!-- + Extensible HTML version 1.0 Transitional DTD + + This is the same as HTML 4 Transitional except for + changes due to the differences between XML and SGML. + + Namespace = http://www.w3.org/1999/xhtml + + For further information, see: http://www.w3.org/TR/xhtml1 + + Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio), + All Rights Reserved. + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" + + $Revision: 1.1.2.1 $ + $Date: 2002/08/19 02:07:44 $ + +--> + +<!--================ Character mnemonic entities =========================--> + +<!ENTITY % HTMLlat1 PUBLIC + "-//W3C//ENTITIES Latin 1 for XHTML//EN" + "xhtml-lat1.ent"> +%HTMLlat1; + +<!ENTITY % HTMLsymbol PUBLIC + "-//W3C//ENTITIES Symbols for XHTML//EN" + "xhtml-symbol.ent"> +%HTMLsymbol; + +<!ENTITY % HTMLspecial PUBLIC + "-//W3C//ENTITIES Special for XHTML//EN" + "xhtml-special.ent"> +%HTMLspecial; + +<!--================== Imported Names ====================================--> + +<!ENTITY % ContentType "CDATA"> + <!-- media type, as per [RFC2045] --> + +<!ENTITY % ContentTypes "CDATA"> + <!-- comma-separated list of media types, as per [RFC2045] --> + +<!ENTITY % Charset "CDATA"> + <!-- a character encoding, as per [RFC2045] --> + +<!ENTITY % Charsets "CDATA"> + <!-- a space separated list of character encodings, as per [RFC2045] --> + +<!ENTITY % LanguageCode "NMTOKEN"> + <!-- a language code, as per [RFC3066] --> + +<!ENTITY % Character "CDATA"> + <!-- a single character, as per section 2.2 of [XML] --> + +<!ENTITY % Number "CDATA"> + <!-- one or more digits --> + +<!ENTITY % LinkTypes "CDATA"> + <!-- space-separated list of link types --> + +<!ENTITY % MediaDesc "CDATA"> + <!-- single or comma-separated list of media descriptors --> + +<!ENTITY % URI "CDATA"> + <!-- a Uniform Resource Identifier, see [RFC2396] --> + +<!ENTITY % UriList "CDATA"> + <!-- a space separated list of Uniform Resource Identifiers --> + +<!ENTITY % Datetime "CDATA"> + <!-- date and time information. ISO date format --> + +<!ENTITY % Script "CDATA"> + <!-- script expression --> + +<!ENTITY % StyleSheet "CDATA"> + <!-- style sheet data --> + +<!ENTITY % Text "CDATA"> + <!-- used for titles etc. --> + +<!ENTITY % FrameTarget "NMTOKEN"> + <!-- render in this frame --> + +<!ENTITY % Length "CDATA"> + <!-- nn for pixels or nn% for percentage length --> + +<!ENTITY % MultiLength "CDATA"> + <!-- pixel, percentage, or relative --> + +<!ENTITY % Pixels "CDATA"> + <!-- integer representing length in pixels --> + +<!-- these are used for image maps --> + +<!ENTITY % Shape "(rect|circle|poly|default)"> + +<!ENTITY % Coords "CDATA"> + <!-- comma separated list of lengths --> + +<!-- used for object, applet, img, input and iframe --> +<!ENTITY % ImgAlign "(top|middle|bottom|left|right)"> + +<!-- a color using sRGB: #RRGGBB as Hex values --> +<!ENTITY % Color "CDATA"> + +<!-- There are also 16 widely known color names with their sRGB values: + + Black = #000000 Green = #008000 + Silver = #C0C0C0 Lime = #00FF00 + Gray = #808080 Olive = #808000 + White = #FFFFFF Yellow = #FFFF00 + Maroon = #800000 Navy = #000080 + Red = #FF0000 Blue = #0000FF + Purple = #800080 Teal = #008080 + Fuchsia= #FF00FF Aqua = #00FFFF +--> + +<!--=================== Generic Attributes ===============================--> + +<!-- core attributes common to most elements + id document-wide unique id + class space separated list of classes + style associated style info + title advisory title/amplification +--> +<!ENTITY % coreattrs + "id ID #IMPLIED + class CDATA #IMPLIED + style %StyleSheet; #IMPLIED + title %Text; #IMPLIED" + > + +<!-- internationalization attributes + lang language code (backwards compatible) + xml:lang language code (as per XML 1.0 spec) + dir direction for weak/neutral text +--> +<!ENTITY % i18n + "lang %LanguageCode; #IMPLIED + xml:lang %LanguageCode; #IMPLIED + dir (ltr|rtl) #IMPLIED" + > + +<!-- attributes for common UI events + onclick a pointer button was clicked + ondblclick a pointer button was double clicked + onmousedown a pointer button was pressed down + onmouseup a pointer button was released + onmousemove a pointer was moved onto the element + onmouseout a pointer was moved away from the element + onkeypress a key was pressed and released + onkeydown a key was pressed down + onkeyup a key was released +--> +<!ENTITY % events + "onclick %Script; #IMPLIED + ondblclick %Script; #IMPLIED + onmousedown %Script; #IMPLIED + onmouseup %Script; #IMPLIED + onmouseover %Script; #IMPLIED + onmousemove %Script; #IMPLIED + onmouseout %Script; #IMPLIED + onkeypress %Script; #IMPLIED + onkeydown %Script; #IMPLIED + onkeyup %Script; #IMPLIED" + > + +<!-- attributes for elements that can get the focus + accesskey accessibility key character + tabindex position in tabbing order + onfocus the element got the focus + onblur the element lost the focus +--> +<!ENTITY % focus + "accesskey %Character; #IMPLIED + tabindex %Number; #IMPLIED + onfocus %Script; #IMPLIED + onblur %Script; #IMPLIED" + > + +<!ENTITY % attrs "%coreattrs; %i18n; %events;"> + +<!-- text alignment for p, div, h1-h6. The default is + align="left" for ltr headings, "right" for rtl --> + +<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED"> + +<!--=================== Text Elements ====================================--> + +<!ENTITY % special.extra + "object | applet | img | map | iframe"> + +<!ENTITY % special.basic + "br | span | bdo"> + +<!ENTITY % special + "%special.basic; | %special.extra;"> + +<!ENTITY % fontstyle.extra "big | small | font | basefont"> + +<!ENTITY % fontstyle.basic "tt | i | b | u + | s | strike "> + +<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;"> + +<!ENTITY % phrase.extra "sub | sup"> +<!ENTITY % phrase.basic "em | strong | dfn | code | q | + samp | kbd | var | cite | abbr | acronym"> + +<!ENTITY % phrase "%phrase.basic; | %phrase.extra;"> + +<!ENTITY % inline.forms "input | select | textarea | label | button"> + +<!-- these can occur at block or inline level --> +<!ENTITY % misc.inline "ins | del | script"> + +<!-- these can only occur at block level --> +<!ENTITY % misc "noscript | %misc.inline;"> + +<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;"> + +<!-- %Inline; covers inline or "text-level" elements --> +<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*"> + +<!--================== Block level elements ==============================--> + +<!ENTITY % heading "h1|h2|h3|h4|h5|h6"> +<!ENTITY % lists "ul | ol | dl | menu | dir"> +<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes"> + +<!ENTITY % block + "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table"> + +<!-- %Flow; mixes block and inline and is used for list items etc. --> +<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*"> + +<!--================== Content models for exclusions =====================--> + +<!-- a elements use %Inline; excluding a --> + +<!ENTITY % a.content + "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*"> + +<!-- pre uses %Inline excluding img, object, applet, big, small, + font, or basefont --> + +<!ENTITY % pre.content + "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; | + %inline.forms; | %misc.inline;)*"> + +<!-- form uses %Flow; excluding form --> + +<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*"> + +<!-- button uses %Flow; but excludes a, form, form controls, iframe --> + +<!ENTITY % button.content + "(#PCDATA | p | %heading; | div | %lists; | %blocktext; | + table | br | span | bdo | object | applet | img | map | + %fontstyle; | %phrase; | %misc;)*"> + +<!--================ Document Structure ==================================--> + +<!-- the namespace URI designates the document profile --> + +<!ELEMENT html (head, body)> +<!ATTLIST html + %i18n; + id ID #IMPLIED + xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml' + > + +<!--================ Document Head =======================================--> + +<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*"> + +<!-- content model is %head.misc; combined with a single + title and an optional base element in any order --> + +<!ELEMENT head (%head.misc;, + ((title, %head.misc;, (base, %head.misc;)?) | + (base, %head.misc;, (title, %head.misc;))))> + +<!ATTLIST head + %i18n; + id ID #IMPLIED + profile %URI; #IMPLIED + > + +<!-- The title element is not considered part of the flow of text. + It should be displayed, for example as the page header or + window title. Exactly one title is required per document. + --> +<!ELEMENT title (#PCDATA)> +<!ATTLIST title + %i18n; + id ID #IMPLIED + > + +<!-- document base URI --> + +<!ELEMENT base EMPTY> +<!ATTLIST base + id ID #IMPLIED + href %URI; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!-- generic metainformation --> +<!ELEMENT meta EMPTY> +<!ATTLIST meta + %i18n; + id ID #IMPLIED + http-equiv CDATA #IMPLIED + name CDATA #IMPLIED + content CDATA #REQUIRED + scheme CDATA #IMPLIED + > + +<!-- + Relationship values can be used in principle: + + a) for document specific toolbars/menus when used + with the link element in document head e.g. + start, contents, previous, next, index, end, help + b) to link to a separate style sheet (rel="stylesheet") + c) to make a link to a script (rel="script") + d) by stylesheets to control how collections of + html nodes are rendered into printed documents + e) to make a link to a printable version of this document + e.g. a PostScript or PDF version (rel="alternate" media="print") +--> + +<!ELEMENT link EMPTY> +<!ATTLIST link + %attrs; + charset %Charset; #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + type %ContentType; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + media %MediaDesc; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!-- style info, which may include CDATA sections --> +<!ELEMENT style (#PCDATA)> +<!ATTLIST style + %i18n; + id ID #IMPLIED + type %ContentType; #REQUIRED + media %MediaDesc; #IMPLIED + title %Text; #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- script statements, which may include CDATA sections --> +<!ELEMENT script (#PCDATA)> +<!ATTLIST script + id ID #IMPLIED + charset %Charset; #IMPLIED + type %ContentType; #REQUIRED + language CDATA #IMPLIED + src %URI; #IMPLIED + defer (defer) #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- alternate content container for non script-based rendering --> + +<!ELEMENT noscript %Flow;> +<!ATTLIST noscript + %attrs; + > + +<!--======================= Frames =======================================--> + +<!-- inline subwindow --> + +<!ELEMENT iframe %Flow;> +<!ATTLIST iframe + %coreattrs; + longdesc %URI; #IMPLIED + name NMTOKEN #IMPLIED + src %URI; #IMPLIED + frameborder (1|0) "1" + marginwidth %Pixels; #IMPLIED + marginheight %Pixels; #IMPLIED + scrolling (yes|no|auto) "auto" + align %ImgAlign; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + > + +<!-- alternate content container for non frame-based rendering --> + +<!ELEMENT noframes %Flow;> +<!ATTLIST noframes + %attrs; + > + +<!--=================== Document Body ====================================--> + +<!ELEMENT body %Flow;> +<!ATTLIST body + %attrs; + onload %Script; #IMPLIED + onunload %Script; #IMPLIED + background %URI; #IMPLIED + bgcolor %Color; #IMPLIED + text %Color; #IMPLIED + link %Color; #IMPLIED + vlink %Color; #IMPLIED + alink %Color; #IMPLIED + > + +<!ELEMENT div %Flow;> <!-- generic language/style container --> +<!ATTLIST div + %attrs; + %TextAlign; + > + +<!--=================== Paragraphs =======================================--> + +<!ELEMENT p %Inline;> +<!ATTLIST p + %attrs; + %TextAlign; + > + +<!--=================== Headings =========================================--> + +<!-- + There are six levels of headings from h1 (the most important) + to h6 (the least important). +--> + +<!ELEMENT h1 %Inline;> +<!ATTLIST h1 + %attrs; + %TextAlign; + > + +<!ELEMENT h2 %Inline;> +<!ATTLIST h2 + %attrs; + %TextAlign; + > + +<!ELEMENT h3 %Inline;> +<!ATTLIST h3 + %attrs; + %TextAlign; + > + +<!ELEMENT h4 %Inline;> +<!ATTLIST h4 + %attrs; + %TextAlign; + > + +<!ELEMENT h5 %Inline;> +<!ATTLIST h5 + %attrs; + %TextAlign; + > + +<!ELEMENT h6 %Inline;> +<!ATTLIST h6 + %attrs; + %TextAlign; + > + +<!--=================== Lists ============================================--> + +<!-- Unordered list bullet styles --> + +<!ENTITY % ULStyle "(disc|square|circle)"> + +<!-- Unordered list --> + +<!ELEMENT ul (li)+> +<!ATTLIST ul + %attrs; + type %ULStyle; #IMPLIED + compact (compact) #IMPLIED + > + +<!-- Ordered list numbering style + + 1 arabic numbers 1, 2, 3, ... + a lower alpha a, b, c, ... + A upper alpha A, B, C, ... + i lower roman i, ii, iii, ... + I upper roman I, II, III, ... + + The style is applied to the sequence number which by default + is reset to 1 for the first list item in an ordered list. +--> +<!ENTITY % OLStyle "CDATA"> + +<!-- Ordered (numbered) list --> + +<!ELEMENT ol (li)+> +<!ATTLIST ol + %attrs; + type %OLStyle; #IMPLIED + compact (compact) #IMPLIED + start %Number; #IMPLIED + > + +<!-- single column list (DEPRECATED) --> +<!ELEMENT menu (li)+> +<!ATTLIST menu + %attrs; + compact (compact) #IMPLIED + > + +<!-- multiple column list (DEPRECATED) --> +<!ELEMENT dir (li)+> +<!ATTLIST dir + %attrs; + compact (compact) #IMPLIED + > + +<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" --> +<!ENTITY % LIStyle "CDATA"> + +<!-- list item --> + +<!ELEMENT li %Flow;> +<!ATTLIST li + %attrs; + type %LIStyle; #IMPLIED + value %Number; #IMPLIED + > + +<!-- definition lists - dt for term, dd for its definition --> + +<!ELEMENT dl (dt|dd)+> +<!ATTLIST dl + %attrs; + compact (compact) #IMPLIED + > + +<!ELEMENT dt %Inline;> +<!ATTLIST dt + %attrs; + > + +<!ELEMENT dd %Flow;> +<!ATTLIST dd + %attrs; + > + +<!--=================== Address ==========================================--> + +<!-- information on author --> + +<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*> +<!ATTLIST address + %attrs; + > + +<!--=================== Horizontal Rule ==================================--> + +<!ELEMENT hr EMPTY> +<!ATTLIST hr + %attrs; + align (left|center|right) #IMPLIED + noshade (noshade) #IMPLIED + size %Pixels; #IMPLIED + width %Length; #IMPLIED + > + +<!--=================== Preformatted Text ================================--> + +<!-- content is %Inline; excluding + "img|object|applet|big|small|sub|sup|font|basefont" --> + +<!ELEMENT pre %pre.content;> +<!ATTLIST pre + %attrs; + width %Number; #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!--=================== Block-like Quotes ================================--> + +<!ELEMENT blockquote %Flow;> +<!ATTLIST blockquote + %attrs; + cite %URI; #IMPLIED + > + +<!--=================== Text alignment ===================================--> + +<!-- center content --> +<!ELEMENT center %Flow;> +<!ATTLIST center + %attrs; + > + +<!--=================== Inserted/Deleted Text ============================--> + +<!-- + ins/del are allowed in block and inline content, but its + inappropriate to include block content within an ins element + occurring in inline content. +--> +<!ELEMENT ins %Flow;> +<!ATTLIST ins + %attrs; + cite %URI; #IMPLIED + datetime %Datetime; #IMPLIED + > + +<!ELEMENT del %Flow;> +<!ATTLIST del + %attrs; + cite %URI; #IMPLIED + datetime %Datetime; #IMPLIED + > + +<!--================== The Anchor Element ================================--> + +<!-- content is %Inline; except that anchors shouldn't be nested --> + +<!ELEMENT a %a.content;> +<!ATTLIST a + %attrs; + %focus; + charset %Charset; #IMPLIED + type %ContentType; #IMPLIED + name NMTOKEN #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + shape %Shape; "rect" + coords %Coords; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!--===================== Inline Elements ================================--> + +<!ELEMENT span %Inline;> <!-- generic language/style container --> +<!ATTLIST span + %attrs; + > + +<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride --> +<!ATTLIST bdo + %coreattrs; + %events; + lang %LanguageCode; #IMPLIED + xml:lang %LanguageCode; #IMPLIED + dir (ltr|rtl) #REQUIRED + > + +<!ELEMENT br EMPTY> <!-- forced line break --> +<!ATTLIST br + %coreattrs; + clear (left|all|right|none) "none" + > + +<!ELEMENT em %Inline;> <!-- emphasis --> +<!ATTLIST em %attrs;> + +<!ELEMENT strong %Inline;> <!-- strong emphasis --> +<!ATTLIST strong %attrs;> + +<!ELEMENT dfn %Inline;> <!-- definitional --> +<!ATTLIST dfn %attrs;> + +<!ELEMENT code %Inline;> <!-- program code --> +<!ATTLIST code %attrs;> + +<!ELEMENT samp %Inline;> <!-- sample --> +<!ATTLIST samp %attrs;> + +<!ELEMENT kbd %Inline;> <!-- something user would type --> +<!ATTLIST kbd %attrs;> + +<!ELEMENT var %Inline;> <!-- variable --> +<!ATTLIST var %attrs;> + +<!ELEMENT cite %Inline;> <!-- citation --> +<!ATTLIST cite %attrs;> + +<!ELEMENT abbr %Inline;> <!-- abbreviation --> +<!ATTLIST abbr %attrs;> + +<!ELEMENT acronym %Inline;> <!-- acronym --> +<!ATTLIST acronym %attrs;> + +<!ELEMENT q %Inline;> <!-- inlined quote --> +<!ATTLIST q + %attrs; + cite %URI; #IMPLIED + > + +<!ELEMENT sub %Inline;> <!-- subscript --> +<!ATTLIST sub %attrs;> + +<!ELEMENT sup %Inline;> <!-- superscript --> +<!ATTLIST sup %attrs;> + +<!ELEMENT tt %Inline;> <!-- fixed pitch font --> +<!ATTLIST tt %attrs;> + +<!ELEMENT i %Inline;> <!-- italic font --> +<!ATTLIST i %attrs;> + +<!ELEMENT b %Inline;> <!-- bold font --> +<!ATTLIST b %attrs;> + +<!ELEMENT big %Inline;> <!-- bigger font --> +<!ATTLIST big %attrs;> + +<!ELEMENT small %Inline;> <!-- smaller font --> +<!ATTLIST small %attrs;> + +<!ELEMENT u %Inline;> <!-- underline --> +<!ATTLIST u %attrs;> + +<!ELEMENT s %Inline;> <!-- strike-through --> +<!ATTLIST s %attrs;> + +<!ELEMENT strike %Inline;> <!-- strike-through --> +<!ATTLIST strike %attrs;> + +<!ELEMENT basefont EMPTY> <!-- base font size --> +<!ATTLIST basefont + id ID #IMPLIED + size CDATA #REQUIRED + color %Color; #IMPLIED + face CDATA #IMPLIED + > + +<!ELEMENT font %Inline;> <!-- local change to font --> +<!ATTLIST font + %coreattrs; + %i18n; + size CDATA #IMPLIED + color %Color; #IMPLIED + face CDATA #IMPLIED + > + +<!--==================== Object ======================================--> +<!-- + object is used to embed objects as part of HTML pages. + param elements should precede other content. Parameters + can also be expressed as attribute/value pairs on the + object element itself when brevity is desired. +--> + +<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*> +<!ATTLIST object + %attrs; + declare (declare) #IMPLIED + classid %URI; #IMPLIED + codebase %URI; #IMPLIED + data %URI; #IMPLIED + type %ContentType; #IMPLIED + codetype %ContentType; #IMPLIED + archive %UriList; #IMPLIED + standby %Text; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + usemap %URI; #IMPLIED + name NMTOKEN #IMPLIED + tabindex %Number; #IMPLIED + align %ImgAlign; #IMPLIED + border %Pixels; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #IMPLIED + > + +<!-- + param is used to supply a named property value. + In XML it would seem natural to follow RDF and support an + abbreviated syntax where the param elements are replaced + by attribute value pairs on the object start tag. +--> +<!ELEMENT param EMPTY> +<!ATTLIST param + id ID #IMPLIED + name CDATA #REQUIRED + value CDATA #IMPLIED + valuetype (data|ref|object) "data" + type %ContentType; #IMPLIED + > + +<!--=================== Java applet ==================================--> +<!-- + One of code or object attributes must be present. + Place param elements before other content. +--> +<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*> +<!ATTLIST applet + %coreattrs; + codebase %URI; #IMPLIED + archive CDATA #IMPLIED + code CDATA #IMPLIED + object CDATA #IMPLIED + alt %Text; #IMPLIED + name NMTOKEN #IMPLIED + width %Length; #REQUIRED + height %Length; #REQUIRED + align %ImgAlign; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #IMPLIED + > + +<!--=================== Images ===========================================--> + +<!-- + To avoid accessibility problems for people who aren't + able to see the image, you should provide a text + description using the alt and longdesc attributes. + In addition, avoid the use of server-side image maps. +--> + +<!ELEMENT img EMPTY> +<!ATTLIST img + %attrs; + src %URI; #REQUIRED + alt %Text; #REQUIRED + name NMTOKEN #IMPLIED + longdesc %URI; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + usemap %URI; #IMPLIED + ismap (ismap) #IMPLIED + align %ImgAlign; #IMPLIED + border %Length; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #IMPLIED + > + +<!-- usemap points to a map element which may be in this document + or an external document, although the latter is not widely supported --> + +<!--================== Client-side image maps ============================--> + +<!-- These can be placed in the same document or grouped in a + separate document although this isn't yet widely supported --> + +<!ELEMENT map ((%block; | form | %misc;)+ | area+)> +<!ATTLIST map + %i18n; + %events; + id ID #REQUIRED + class CDATA #IMPLIED + style %StyleSheet; #IMPLIED + title %Text; #IMPLIED + name CDATA #IMPLIED + > + +<!ELEMENT area EMPTY> +<!ATTLIST area + %attrs; + %focus; + shape %Shape; "rect" + coords %Coords; #IMPLIED + href %URI; #IMPLIED + nohref (nohref) #IMPLIED + alt %Text; #REQUIRED + target %FrameTarget; #IMPLIED + > + +<!--================ Forms ===============================================--> + +<!ELEMENT form %form.content;> <!-- forms shouldn't be nested --> + +<!ATTLIST form + %attrs; + action %URI; #REQUIRED + method (get|post) "get" + name NMTOKEN #IMPLIED + enctype %ContentType; "application/x-www-form-urlencoded" + onsubmit %Script; #IMPLIED + onreset %Script; #IMPLIED + accept %ContentTypes; #IMPLIED + accept-charset %Charsets; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!-- + Each label must not contain more than ONE field + Label elements shouldn't be nested. +--> +<!ELEMENT label %Inline;> +<!ATTLIST label + %attrs; + for IDREF #IMPLIED + accesskey %Character; #IMPLIED + onfocus %Script; #IMPLIED + onblur %Script; #IMPLIED + > + +<!ENTITY % InputType + "(text | password | checkbox | + radio | submit | reset | + file | hidden | image | button)" + > + +<!-- the name attribute is required for all but submit & reset --> + +<!ELEMENT input EMPTY> <!-- form control --> +<!ATTLIST input + %attrs; + %focus; + type %InputType; "text" + name CDATA #IMPLIED + value CDATA #IMPLIED + checked (checked) #IMPLIED + disabled (disabled) #IMPLIED + readonly (readonly) #IMPLIED + size CDATA #IMPLIED + maxlength %Number; #IMPLIED + src %URI; #IMPLIED + alt CDATA #IMPLIED + usemap %URI; #IMPLIED + onselect %Script; #IMPLIED + onchange %Script; #IMPLIED + accept %ContentTypes; #IMPLIED + align %ImgAlign; #IMPLIED + > + +<!ELEMENT select (optgroup|option)+> <!-- option selector --> +<!ATTLIST select + %attrs; + name CDATA #IMPLIED + size %Number; #IMPLIED + multiple (multiple) #IMPLIED + disabled (disabled) #IMPLIED + tabindex %Number; #IMPLIED + onfocus %Script; #IMPLIED + onblur %Script; #IMPLIED + onchange %Script; #IMPLIED + > + +<!ELEMENT optgroup (option)+> <!-- option group --> +<!ATTLIST optgroup + %attrs; + disabled (disabled) #IMPLIED + label %Text; #REQUIRED + > + +<!ELEMENT option (#PCDATA)> <!-- selectable choice --> +<!ATTLIST option + %attrs; + selected (selected) #IMPLIED + disabled (disabled) #IMPLIED + label %Text; #IMPLIED + value CDATA #IMPLIED + > + +<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field --> +<!ATTLIST textarea + %attrs; + %focus; + name CDATA #IMPLIED + rows %Number; #REQUIRED + cols %Number; #REQUIRED + disabled (disabled) #IMPLIED + readonly (readonly) #IMPLIED + onselect %Script; #IMPLIED + onchange %Script; #IMPLIED + > + +<!-- + The fieldset element is used to group form fields. + Only one legend element should occur in the content + and if present should only be preceded by whitespace. +--> +<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*> +<!ATTLIST fieldset + %attrs; + > + +<!ENTITY % LAlign "(top|bottom|left|right)"> + +<!ELEMENT legend %Inline;> <!-- fieldset label --> +<!ATTLIST legend + %attrs; + accesskey %Character; #IMPLIED + align %LAlign; #IMPLIED + > + +<!-- + Content is %Flow; excluding a, form, form controls, iframe +--> +<!ELEMENT button %button.content;> <!-- push button --> +<!ATTLIST button + %attrs; + %focus; + name CDATA #IMPLIED + value CDATA #IMPLIED + type (button|submit|reset) "submit" + disabled (disabled) #IMPLIED + > + +<!-- single-line text input control (DEPRECATED) --> +<!ELEMENT isindex EMPTY> +<!ATTLIST isindex + %coreattrs; + %i18n; + prompt %Text; #IMPLIED + > + +<!--======================= Tables =======================================--> + +<!-- Derived from IETF HTML table standard, see [RFC1942] --> + +<!-- + The border attribute sets the thickness of the frame around the + table. The default units are screen pixels. + + The frame attribute specifies which parts of the frame around + the table should be rendered. The values are not the same as + CALS to avoid a name clash with the valign attribute. +--> +<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)"> + +<!-- + The rules attribute defines which rules to draw between cells: + + If rules is absent then assume: + "none" if border is absent or border="0" otherwise "all" +--> + +<!ENTITY % TRules "(none | groups | rows | cols | all)"> + +<!-- horizontal placement of table relative to document --> +<!ENTITY % TAlign "(left|center|right)"> + +<!-- horizontal alignment attributes for cell contents + + char alignment char, e.g. char=':' + charoff offset for alignment char +--> +<!ENTITY % cellhalign + "align (left|center|right|justify|char) #IMPLIED + char %Character; #IMPLIED + charoff %Length; #IMPLIED" + > + +<!-- vertical alignment attributes for cell contents --> +<!ENTITY % cellvalign + "valign (top|middle|bottom|baseline) #IMPLIED" + > + +<!ELEMENT table + (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))> +<!ELEMENT caption %Inline;> +<!ELEMENT thead (tr)+> +<!ELEMENT tfoot (tr)+> +<!ELEMENT tbody (tr)+> +<!ELEMENT colgroup (col)*> +<!ELEMENT col EMPTY> +<!ELEMENT tr (th|td)+> +<!ELEMENT th %Flow;> +<!ELEMENT td %Flow;> + +<!ATTLIST table + %attrs; + summary %Text; #IMPLIED + width %Length; #IMPLIED + border %Pixels; #IMPLIED + frame %TFrame; #IMPLIED + rules %TRules; #IMPLIED + cellspacing %Length; #IMPLIED + cellpadding %Length; #IMPLIED + align %TAlign; #IMPLIED + bgcolor %Color; #IMPLIED + > + +<!ENTITY % CAlign "(top|bottom|left|right)"> + +<!ATTLIST caption + %attrs; + align %CAlign; #IMPLIED + > + +<!-- +colgroup groups a set of col elements. It allows you to group +several semantically related columns together. +--> +<!ATTLIST colgroup + %attrs; + span %Number; "1" + width %MultiLength; #IMPLIED + %cellhalign; + %cellvalign; + > + +<!-- + col elements define the alignment properties for cells in + one or more columns. + + The width attribute specifies the width of the columns, e.g. + + width=64 width in screen pixels + width=0.5* relative width of 0.5 + + The span attribute causes the attributes of one + col element to apply to more than one column. +--> +<!ATTLIST col + %attrs; + span %Number; "1" + width %MultiLength; #IMPLIED + %cellhalign; + %cellvalign; + > + +<!-- + Use thead to duplicate headers when breaking table + across page boundaries, or for static headers when + tbody sections are rendered in scrolling panel. + + Use tfoot to duplicate footers when breaking table + across page boundaries, or for static footers when + tbody sections are rendered in scrolling panel. + + Use multiple tbody sections when rules are needed + between groups of table rows. +--> +<!ATTLIST thead + %attrs; + %cellhalign; + %cellvalign; + > + +<!ATTLIST tfoot + %attrs; + %cellhalign; + %cellvalign; + > + +<!ATTLIST tbody + %attrs; + %cellhalign; + %cellvalign; + > + +<!ATTLIST tr + %attrs; + %cellhalign; + %cellvalign; + bgcolor %Color; #IMPLIED + > + +<!-- Scope is simpler than headers attribute for common tables --> +<!ENTITY % Scope "(row|col|rowgroup|colgroup)"> + +<!-- th is for headers, td for data and for cells acting as both --> + +<!ATTLIST th + %attrs; + abbr %Text; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + scope %Scope; #IMPLIED + rowspan %Number; "1" + colspan %Number; "1" + %cellhalign; + %cellvalign; + nowrap (nowrap) #IMPLIED + bgcolor %Color; #IMPLIED + width %Length; #IMPLIED + height %Length; #IMPLIED + > + +<!ATTLIST td + %attrs; + abbr %Text; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + scope %Scope; #IMPLIED + rowspan %Number; "1" + colspan %Number; "1" + %cellhalign; + %cellvalign; + nowrap (nowrap) #IMPLIED + bgcolor %Color; #IMPLIED + width %Length; #IMPLIED + height %Length; #IMPLIED + > + diff --git a/htdocs/sgml-lib/mathml.soc b/htdocs/sgml-lib/mathml.soc index 59973e9..f5b1ee9 100644 --- a/htdocs/sgml-lib/mathml.soc +++ b/htdocs/sgml-lib/mathml.soc @@ -17,3 +17,7 @@ SYSTEM "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" SYSTEM "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd" "REC-MathML2-20010221/mathml2.dtd" +-- XHTML + MathML + SVG -- +PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" + "xhtml-math-svg-flat-20020430.dtd" + diff --git a/htdocs/sgml-lib/sgml.dcl b/htdocs/sgml-lib/sgml.dcl new file mode 100644 index 0000000..9b78f18 --- /dev/null +++ b/htdocs/sgml-lib/sgml.dcl @@ -0,0 +1,81 @@ +<!SGML "ISO 8879:1986 (WWW)" + -- + SGML Declaration for HyperText Markup Language version HTML 4 + + With support for the first 17 planes of ISO 10646 and + increased limits for tag and literal lengths etc. + -- + + CHARSET + BASESET "ISO Registration Number 177//CHARSET + ISO/IEC 10646-1:1993 UCS-4 with + implementation level 3//ESC 2/5 2/15 4/6" + DESCSET 0 9 UNUSED + 9 2 9 + 11 2 UNUSED + 13 1 13 + 14 18 UNUSED + 32 95 32 + 127 1 UNUSED + 128 32 UNUSED + 160 55136 160 + 55296 2048 UNUSED -- SURROGATES -- + 57344 1056768 57344 + +CAPACITY SGMLREF + TOTALCAP 150000 + GRPCAP 150000 + ENTCAP 150000 + +SCOPE DOCUMENT +SYNTAX + SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127 + BASESET "ISO 646IRV:1991//CHARSET + International Reference Version + (IRV)//ESC 2/8 4/2" + DESCSET 0 128 0 + + FUNCTION + RE 13 + RS 10 + SPACE 32 + TAB SEPCHAR 9 + + NAMING LCNMSTRT "" + UCNMSTRT "" + LCNMCHAR ".-_:" + UCNMCHAR ".-_:" + NAMECASE GENERAL YES + ENTITY NO + DELIM GENERAL SGMLREF + HCRO "&#x" -- 38 is the number for ampersand -- + SHORTREF SGMLREF + NAMES SGMLREF + QUANTITY SGMLREF + ATTCNT 60 -- increased -- + ATTSPLEN 65536 -- These are the largest values -- + LITLEN 65536 -- permitted in the declaration -- + NAMELEN 65536 -- Avoid fixed limits in actual -- + PILEN 65536 -- implementations of HTML UA's -- + TAGLVL 100 + TAGLEN 65536 + GRPGTCNT 150 + GRPCNT 64 + +FEATURES + MINIMIZE + DATATAG NO + OMITTAG YES + RANK NO + SHORTTAG YES + LINK + SIMPLE NO + IMPLICIT NO + EXPLICIT NO + OTHER + CONCUR NO + SUBDOC NO + FORMAL YES + APPINFO NONE +>
\ No newline at end of file diff --git a/htdocs/sgml-lib/sgml.soc b/htdocs/sgml-lib/sgml.soc new file mode 100644 index 0000000..c0e282a --- /dev/null +++ b/htdocs/sgml-lib/sgml.soc @@ -0,0 +1,153 @@ + + -- SGML catalog for the W3C HTML Validation Service -- + -- $Id: sgml.soc,v 1.2 2002-08-20 01:51:25 link Exp $ -- + +OVERRIDE YES -- prefer public identifiers to system identifiers -- +SGMLDECL sgml.dcl + + -- ISO latin 1 entity set for HTML -- +PUBLIC "-//IETF//ENTITIES Added Latin 1 for HTML//EN" html-latin.sgml +PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML" ISOlat1.ent +PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN" ISOlat1.ent + + -- fake HTMLicons reference -- +PUBLIC "-//IETF//ENTITIES icons for HTML//EN" html-icons.sgml + + -- fake HTMLmath reference -- +PUBLIC "-//IETF//ENTITIES Math and Greek for HTML//EN" html-math.sgml + + -- Ways to refer to Level 3: most general to most specific -- +PUBLIC "-//IETF//DTD HTML//EN//3.0" html-3.dtd +PUBLIC "-//W3O//DTD W3 HTML 3.0//EN//" html-3.dtd +PUBLIC "-//W3O//DTD W3 HTML 3.0//EN" html-3.dtd +PUBLIC "-//W3C//DTD HTML 3 1995-03-24//EN" html-3.dtd +PUBLIC "-//IETF//DTD HTML 3.0//EN" html-3.dtd +PUBLIC "-//IETF//DTD HTML 3.0//EN//" html-3.dtd +PUBLIC "-//IETF//DTD HTML Level 3//EN" html-3.dtd +PUBLIC "-//IETF//DTD HTML Level 3//EN//3.0" html-3.dtd + + -- AdvaSoft's more up-to-date DTD for 3.0; see html-3-as.dtd for info -- +PUBLIC "-//AS//DTD HTML 3.0 asWedit + extensions//EN" html-3-as.dtd +PUBLIC "-//AdvaSoft Ltd//DTD HTML 3.0 asWedit + extensions//EN" html-3-as.dtd + + -- Ways to refer to strict Level 3: most general to most specific -- +PUBLIC "-//IETF//DTD HTML Strict//EN//3.0" html-3s.dtd +PUBLIC "-//W3O//DTD W3 HTML Strict 3.0//EN//" html-3s.dtd +PUBLIC "-//IETF//DTD HTML Strict Level 3//EN" html-3s.dtd +PUBLIC "-//IETF//DTD HTML Strict Level 3//EN//3.0" html-3s.dtd + + -- Ways to refer to Level 2: most general to most specific -- +PUBLIC "HTML" html.dtd +PUBLIC "-//IETF//DTD HTML//EN" html.dtd +PUBLIC "-//IETF//DTD HTML//EN//2.0" html.dtd +PUBLIC "-//IETF//DTD HTML 2.0//EN" html.dtd +PUBLIC "-//IETF//DTD HTML Level 2//EN" html.dtd +PUBLIC "-//IETF//DTD HTML Level 2//EN//2.0" html.dtd +PUBLIC "-//IETF//DTD HTML 2.0 Level 2//EN" html.dtd + + -- Ways to refer to Level 1: most general to most specific -- +PUBLIC "-//IETF//DTD HTML Level 1//EN" html-1.dtd +PUBLIC "-//IETF//DTD HTML Level 1//EN//2.0" html-1.dtd +PUBLIC "-//IETF//DTD HTML 2.0 Level 1//EN" html-1.dtd + + -- Ways to refer to Level 0: most general to most specific -- +PUBLIC "-//IETF//DTD HTML Level 0//EN" html-0.dtd +PUBLIC "-//IETF//DTD HTML Level 0//EN//2.0" html-0.dtd + + -- Ways to refer to Strict Level 2 -- +PUBLIC "-//IETF//DTD HTML Strict//EN" html-s.dtd +PUBLIC "-//IETF//DTD HTML Strict//EN//2.0" html-s.dtd +PUBLIC "-//IETF//DTD HTML Strict Level 2//EN" html-s.dtd +PUBLIC "-//IETF//DTD HTML Strict Level 2//EN//2.0" html-s.dtd +PUBLIC "-//IETF//DTD HTML 2.0 Strict//EN" html-s.dtd +PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//EN" html-s.dtd + + -- Ways to refer to Strict Level 1 -- +PUBLIC "-//IETF//DTD HTML Strict Level 1//EN" html-1s.dtd +PUBLIC "-//IETF//DTD HTML Strict Level 1//EN//2.0" html-1s.dtd +PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 1//EN" html-1s.dtd + + -- Ways to refer to Strict Level 0 -- +PUBLIC "-//IETF//DTD HTML Strict Level 0//EN" html-0s.dtd +PUBLIC "-//IETF//DTD HTML Strict Level 0//EN//2.0" html-0s.dtd + + -- Ways to refer to Netscape extensions HTML -- +PUBLIC "-//WebTechs//DTD Mozilla HTML//EN" html-mcom.dtd +PUBLIC "-//WebTechs//DTD Mozilla HTML 2.0//EN" html-mcom.dtd +PUBLIC "-//Netscape Comm. Corp.//DTD HTML//EN" html-mcom.dtd +PUBLIC "-//Netscape Comm. Corp.//DTD HTML//EN" html-mcom.dtd +PUBLIC "-//Netscape Comm. Corp.//DTD Strict HTML//EN" html-mcoms.dtd + + -- Ways to refer to Microsoft extensions HTML -- +PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 HTML//EN" iehtml.dtd +PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//EN" iehtml-s.dtd +PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 Tables//EN" ietables.dtd +PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 HTML//EN" ie30.dtd +PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//EN" ie30-s.dtd +PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 Tables//EN" ie30tables.dtd + + -- Ways to refer to Sun Microsystems HotJava extensions -- +PUBLIC "-//Sun Microsystems Corp.//DTD HotJava HTML//EN" html-hj.dtd +PUBLIC "-//Sun Microsystems Corp.//DTD HotJava Strict HTML//EN" html-hjs.dtd + + -- Ways to refer to HTML 2.1 variants -- +PUBLIC "-//IETF//DTD HTML 2.1E//EN" html-2.1e.dtd + + -- O'Reilly & Associates DTD; see http://www.ora.com/standards/html/ -- +PUBLIC "-//O'Reilly and Associates//DTD HTML Extended 1.0//EN" oreilly-html.dtd +PUBLIC "-//O'Reilly and Associates//DTD HTML Extended Relaxed 1.0//EN" oreilly-html-relaxed.dtd +PUBLIC "-//O'Reilly and Associates//DTD HTML 2.0//EN" oreilly-rfc1866.dtd +PUBLIC "-//O'Reilly and Associates//ELEMENTS Table Fragment 1.0//EN" oreilly-draft-table.elements +PUBLIC "-//O'Reilly and Associates//ENTITIES Additional HTML 1.0//EN" oreilly-additional.entities + + -- Ways to Refer to SoftQuad HTML 2.0 + extensions -- +PUBLIC "-//SQ//DTD HTML 2.0 HoTMetaL + extensions//EN" html-sq.dtd + + -- Spyglass HTML 2.0 Extended DTD -- +PUBLIC "-//Spyglass//DTD HTML 2.0 Extended//EN" spyglass/html2x.dtd +PUBLIC "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN" spyglass/dsssl.not +PUBLIC "-//IETF//NOTATION W3C Style Language//EN" spyglass/w3csty.not +PUBLIC "-//IETF//NOTATION Cascading Style Sheet Language//EN" spyglass/css.not + + -- "HTML Pro" -- +PUBLIC "ISO 8879-1986//ENTITIES Added Latin 2//EN" pro/usr/local/lib/sgml/iso_8879-1986/entities/added_latin_2 +PUBLIC "ISO 8879-1986//ENTITIES Publishing//EN" pro/usr/local/lib/sgml/iso_8879-1986/entities/publishing +PUBLIC "ISO 8879-1986//ENTITIES General Technical//EN" pro/usr/local/lib/sgml/iso_8879-1986/entities/general_technical +PUBLIC "ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN" pro/usr/local/lib/sgml/iso_8879-1986/entities/numeric_and_special_graphic +PUBLIC "+//Silmaril//DTD HTML Pro v0r11 19970101//EN" pro/html/dtds/htmlpro.dtd + + -- experimental DTDs -- +PUBLIC "-//W3C//DTD HTML Experimental 19960712//EN" pro/usr/local/lib/sgml/w3c/dtd/html_experimental_19960712 + + -- HTML 3.2 -- +PUBLIC "-//W3C//DTD HTML 3.2//EN" html-3.2.dtd +PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" html-3.2.dtd +PUBLIC "-//W3C//DTD HTML 3.2 Draft//EN" html-3.2.dtd + + -- HTML 3.2 + Style -- +PUBLIC "-//W3C//DTD HTML Experimental 970421//EN" html-970421.dtd +PUBLIC "-//W3C//DTD HTML 3.2S Draft//EN" html-970421.dtd + + -- HTML 4.0 -- +PUBLIC "-//W3C//DTD HTML 4.0//EN" REC-html40-19980424/strict.dtd +PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" REC-html40-19980424/loose.dtd +PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" REC-html40-19980424/frameset.dtd + + -- HTML 4.01 -- +PUBLIC "-//W3C//DTD HTML 4.01//EN" REC-html401-19991224/strict.dtd +PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" REC-html401-19991224/loose.dtd +PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" REC-html401-19991224/frameset.dtd +PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" REC-html401-19991224/HTMLlat1.ent +PUBLIC "-//W3C//ENTITIES Latin 1//EN//HTML" REC-html401-19991224/HTMLlat1.ent +PUBLIC "-//W3C//ENTITIES Special//EN//HTML" REC-html401-19991224/HTMLspecial.ent +PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" REC-html401-19991224/HTMLsymbol.ent + + -- ISO-HTML -- +PUBLIC "ISO/IEC 15445:2000//DTD HyperText Markup Language//EN" ISO-HTML/15445.dtd +PUBLIC "ISO/IEC 15445:2000//DTD HTML//EN" ISO-HTML/15445.dtd +PUBLIC "-//W3C//ENTITIES Full Latin 1//EN//HTML" REC-html401-19991224/HTMLlat1.ent +PUBLIC "-//W3C//ENTITIES Symbolic//EN//HTML" REC-html401-19991224/HTMLsymbol.ent + +PUBLIC "-//bebop.net//DTD HTML Apple Help 1.0//EN" AppleHelp1.0.dtd + + diff --git a/htdocs/sgml-lib/spec.dtd b/htdocs/sgml-lib/spec.dtd new file mode 100644 index 0000000..15f9db5 --- /dev/null +++ b/htdocs/sgml-lib/spec.dtd @@ -0,0 +1,1741 @@ +<!-- ............................................................... --> +<!-- XML specification DTD ......................................... --> +<!-- ............................................................... --> + +<!-- +TYPICAL INVOCATION: +# <!DOCTYPE spec PUBLIC +# "-//W3C//DTD Specification V2.1//EN" +# "http://www.w3.org/XML/1998/06/xmlspec-v21.dtd"> + +PURPOSE: + This XML DTD is for W3C specifications and other technical reports. + It is based in part on the TEI Lite and Sweb DTDs. + +DEPENDENCIES: + None. + +CHANGE HISTORY: + The list of changes is at the end of the DTD. + + For all details, see the design report at: + +# <http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm> + + Search this file for "#" in the first column to see change history + comments. To find changes made this time, search for "2000-03-07". + +MAINTAINER: + Eve Maler + Sun Microsystems, Inc. + elm@east.sun.com + voice: +1 781 442 3190 + fax: +1 781 442 1437 +--> + +<!-- ............................................................... --> +<!-- Entities for characters and symbols ........................... --> +<!-- ............................................................... --> + +<!-- +#1998-03-10: maler: Added “ and ”. +# Used 8879:1986-compatible decimal character +# references. +# Merged charent.mod file back into main file. +#1998-05-14: maler: Fixed ldquo and rdquo. Gave mdash a real number. +#1998-12-03: maler: Escaped the leading ampersands. +--> + +<!ENTITY lt "&#60;"> +<!ENTITY gt ">"> +<!ENTITY amp "&#38;"> +<!ENTITY apos "'"> +<!ENTITY quot """> +<!ENTITY nbsp " "> +<!ENTITY mdash "&#x2014;"> +<!ENTITY ldquo "&#x201C;"> +<!ENTITY rdquo "&#x201D;"> + +<!-- ............................................................... --> +<!-- Entities for classes of standalone elements ................... --> +<!-- ............................................................... --> + +<!-- +#1997-10-16: maler: Added table to %illus.class;. +#1997-11-28: maler: Added htable to %illus.class;. +#1997-12-29: maler: IGNOREd table. +#1998-03-10: maler: Removed SGML Open-specific %illus.class;. +# Added "local" entities for customization. +#1998-05-14: maler: Added issue to %note.class;. +# Removed %[local.]statusp.class;. +#1998-05-21: maler: Added constraintnote to %note.class;. +#1998-08-22: maler: Changed htable to table in %illus.class;. +# Added definitions to %illus.class;. +#2000-03-07: maler: Added proto and example to %illus.class;. +--> + +<!ENTITY % local.p.class ""> +<!ENTITY % p.class "p + %local.p.class;"> + +<!ENTITY % local.list.class ""> +<!ENTITY % list.class "ulist|olist|slist|glist + %local.list.class;"> + +<!ENTITY % local.speclist.class ""> +<!ENTITY % speclist.class "orglist|blist + %local.speclist.class;"> + +<!ENTITY % local.note.class ""> +<!ENTITY % note.class "note|issue|wfcnote|vcnote + |constraintnote %local.note.class;"> + +<!ENTITY % local.illus.class ""> +<!ENTITY % illus.class "eg|graphic|scrap|table|definitions + |proto|example + %local.illus.class;"> + +<!-- ............................................................... --> +<!-- Entities for classes of phrase-level elements ................. --> +<!-- ............................................................... --> + +<!-- +#1997-12-29: maler: Added xspecref to %ref.class;. +#1998-03-10: maler: Added %ednote.class;. +# Added "local" entities for customization. +#2000-03-07: maler: Added function, var, el, att, and attval to +# %tech.class;. +# Added sub, sup, and phrase to %emph.class;. +--> + +<!ENTITY % local.annot.class ""> +<!ENTITY % annot.class "footnote + %local.annot.class;"> + +<!ENTITY % local.termdef.class ""> +<!ENTITY % termdef.class "termdef|term + %local.termdef.class;"> + +<!ENTITY % local.emph.class ""> +<!ENTITY % emph.class "emph|phrase|quote|sub|sup + %local.emph.class;"> + +<!ENTITY % local.ref.class ""> +<!ENTITY % ref.class "bibref|specref|termref|titleref + |xspecref|xtermref + %local.ref.class;"> + +<!ENTITY % local.loc.class ""> +<!ENTITY % loc.class "loc + %local.loc.class;"> + +<!ENTITY % local.tech.class ""> +<!ENTITY % tech.class "kw|nt|xnt|code|function|var + |el|att|attval + %local.tech.class;"> + +<!ENTITY % local.ednote.class ""> +<!ENTITY % ednote.class "ednote + %local.ednote.class;"> + +<!-- ............................................................... --> +<!-- Entities for mixtures of standalone elements .................. --> +<!-- ............................................................... --> + +<!-- +#1997-09-30: maler: Created %p.mix; to eliminate p from self. +#1997-09-30: maler: Added %speclist.class; to %obj.mix; and %p.mix;. +#1997-09-30: maler: Added %note.class; to %obj.mix; and %p.mix;. +#1997-10-16: maler: Created %entry.mix;. Note that some elements +# left out here are still allowed in termdef, +# which entry can contain through %p.pcd.mix;. +#1997-11-28: maler: Added %p.class; to %statusobj.mix;. +#1998-03-10: maler: Added %ednote.class; to all mixtures, except +# %p.mix; and %statusobj.mix;, because paragraphs +# and status paragraphs will contain ednote +# through %p.pcd.mix;. +#1998-03-23: maler: Added %termdef.mix; (broken out from +# %termdef.pcd.mix;). +#1998-05-14: maler: Removed %statusobj.mix; and all mentions of +# %statusp.mix;. +--> + +<!ENTITY % div.mix + "%p.class;|%list.class;|%speclist.class;|%note.class; + |%illus.class;|%ednote.class;"> +<!ENTITY % obj.mix + "%p.class;|%list.class;|%speclist.class;|%note.class; + |%illus.class;|%ednote.class;"> +<!ENTITY % p.mix + "%list.class;|%speclist.class;|%note.class;|%illus.class;"> +<!ENTITY % entry.mix + "%list.class;|note|eg|graphic|%ednote.class;"> +<!ENTITY % hdr.mix + "%p.class;|%list.class;|%ednote.class;"> +<!ENTITY % termdef.mix + "%note.class;|%illus.class;"> + +<!-- ............................................................... --> +<!-- Entities for mixtures of #PCDATA and phrase-level elements .... --> +<!-- ............................................................... --> + +<!-- Note that %termdef.pcd.mix contains %note.class; + and %illus.class;, considered standalone elements. --> + +<!-- +#1997-09-30: maler: Added scrap and %note.class; to %termdef.pcd.mix;. +#1997-11-28: maler: Added %loc.class; to %p.pcd.mix;. +#1998-03-10: maler: Added %ednote.class; to all mixtures. +#1998-03-23: maler: Moved some %termdef.pcd.mix; stuff out to +# %termdef.mix;. +#1998-05-14: maler: Removed %statusp.pcd.mix;. +#1998-05-21: maler: Added constraint element to %eg.pcd.mix;. +#1999-07-02: maler: Added %loc.class; to %head.pcd.mix;, +# %label.pcd.mix;, %eg.pcd.mix;, %termdef.pcd.mix;, +# %tech.pcd.mix; (net: all PCD mixes have it). +# Removed unused %loc.pcd.mix;. +--> + +<!ENTITY % p.pcd.mix + "#PCDATA|%annot.class;|%termdef.class;|%emph.class; + |%ref.class;|%tech.class;|%loc.class;|%ednote.class;"> +<!ENTITY % head.pcd.mix + "#PCDATA|%annot.class;|%emph.class;|%tech.class; + |%loc.class;|%ednote.class;"> +<!ENTITY % label.pcd.mix + "#PCDATA|%annot.class;|%termdef.class;|%emph.class; + |%tech.class;|%loc.class;|%ednote.class;"> +<!ENTITY % eg.pcd.mix + "#PCDATA|%annot.class;|%emph.class;|%loc.class; + |%ednote.class;|constraint"> +<!ENTITY % termdef.pcd.mix + "#PCDATA|term|%emph.class;|%ref.class;|%tech.class; + |%loc.class;|%ednote.class;"> +<!ENTITY % bibl.pcd.mix + "#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;"> +<!ENTITY % tech.pcd.mix + "#PCDATA|%loc.class;|%ednote.class;"> + +<!-- ............................................................... --> +<!-- Entities for customizable content models ...................... --> +<!-- ............................................................... --> + +<!-- +#1998-03-10: maler: Added customization entities. +#1998-05-14: maler: Allowed prevlocs and latestloc in either order. +#1999-07-02: maler: Made version optional; added copyright element. +#2000-03-07: maler: Allowed status and abstract in opposite order. +--> + +<!ENTITY % spec.mdl + "header, front?, body, back?"> + +<!ENTITY % header.mdl + "title, subtitle?, version?, w3c-designation, w3c-doctype, + pubdate, notice*, publoc, ((prevlocs, latestloc?) | + (latestloc, prevlocs?))?, authlist, copyright?, + ((status, abstract) | (abstract, status)), pubstmt?, + sourcedesc?, langusage, revisiondesc"> + +<!ENTITY % pubdate.mdl + "day?, month, year"> + +<!-- ............................................................... --> +<!-- Entities for common attributes ................................ --> +<!-- ............................................................... --> + +<!-- +#2000-03-07: maler: Added %argtypes;. +--> + +<!-- argtypes: + Values for function prototype argument datatypes. --> +<!ENTITY % argtypes + '(boolean + |expression + |location-set + |node-set + |number + |object + |point + |range + |string)'> + +<!-- key attribute: + Optionally provides a sorting or indexing key, for cases when + the element content is inappropriate for this purpose. --> +<!ENTITY % key.att + 'key CDATA #IMPLIED'> + +<!-- def attribute: + Points to the element where the relevant definition can be + found, using the IDREF mechanism. %def.att; is for optional + def attributes, and %def-req.att; is for required def + attributes. --> +<!ENTITY % def.att + 'def IDREF #IMPLIED'> +<!ENTITY % def-req.att + 'def IDREF #REQUIRED'> + +<!-- ref attribute: + Points to the element where more information can be found, + using the IDREF mechanism. %ref.att; is for optional + ref attributes, and %ref-req.att; is for required ref + attributes. --> +<!ENTITY % ref.att + 'ref IDREF #IMPLIED'> +<!ENTITY % ref-req.att + 'ref IDREF #REQUIRED'> + +<!-- +#1998-03-23: maler: Added show and actuate attributes to href. +# Added semi-common xml:space attribute. +#1998-08-22: maler: Used new xlink:form and #IMPLIED features. +#1999-07-02: maler: Reorganized XLink-related entities completely; +# added xmlns:xlink attribute to the mix. +#2000-03-07: maler: Updated XLink usage to February 2000 draft, +# except that href still has no namespace prefix. +--> + +<!-- xmlns:xlink and xlink:type attributes: + xmlns:xlink declares the association of the xlink prefix + with the namespace created by the XLink specification. + xlink:type identifies an element as an XLink "simple" linking + element. --> +<!ENTITY % simple-xlink.att + 'xmlns:xlink CDATA #FIXED + "http://www.w3.org/1999/xlink" + xlink:type CDATA #FIXED "simple" '> + +<!-- href attributes: + The href attribute locates the remote-resource half of a + simple link; the element on which the href appears is the + local-resource half. Some elements are usable links only if + the author chooses to supply a functional href. The attribute + name should really be xlink:href, but is kept without the + prefix for now in order to be backwards-compatible. --> + +<!ENTITY % href.att + 'href CDATA #IMPLIED '> +<!ENTITY % href-req.att + 'href CDATA #REQUIRED '> + +<!-- xlink:show and xlink:actuate attributes: + These attributes offer instructions to the display engine + about how to handle traversal to resource indicated by an + href locator. --> +<!ENTITY % auto-embed.att + 'xlink:show CDATA #FIXED "embed" + xlink:actuate CDATA #FIXED "onLoad" '> +<!ENTITY % user-replace.att + 'xlink:show CDATA #FIXED "replace" + xlink:actuate CDATA #FIXED "onRequest" '> +<!ENTITY % user-new.att + 'xlink:show CDATA #FIXED "new" + xlink:actuate CDATA #FIXED "onRequest" '> + +<!-- xml:space attribute: + Indicates that the element contains whitespace that the + formatter or other application should retain, as appropriate + to its function. --> +<!ENTITY % xmlspace.att + 'xml:space (default + |preserve) #FIXED "preserve" '> + +<!-- +#2000-03-07: maler: Added common diff attribute. Made %role.att;. +--> + +<!-- diff attribute: + Indicates in what way the element has changed. When a value + is not provided, that subelement should inherit a value from + its parent. If the root element has no value supplied, + assume "off". --> +<!ENTITY % diff.att + 'diff (chg + |add + |del + |off) #IMPLIED'> + +<!-- role attribute: + Extends the useful life of the DTD by allowing authors to + make a subtype of any element. No default. --> +<!ENTITY % role.att + 'role NMTOKEN #IMPLIED'> + +<!-- Common attributes: + Every element has an ID attribute for links, a role + attribute, and a diff attribute. %common.att; is for + common attributes where the ID is optional, and + %common-idreq.att; is for common attributes where the + ID is required. --> +<!ENTITY % common.att + 'id ID #IMPLIED + %role.att; + %diff.att;'> +<!ENTITY % common-idreq.att + 'id ID #REQUIRED + %role.att; + %diff.att;'> + +<!-- ............................................................... --> +<!-- Common elements ............................................... --> +<!-- ............................................................... --> + +<!-- head: Title on divisions, productions, and the like --> +<!ELEMENT head (%head.pcd.mix;)*> +<!ATTLIST head %common.att;> + +<!-- ............................................................... --> +<!-- Major specification structure ................................. --> +<!-- ............................................................... --> + +<!-- +#1998-03-10: maler: Made spec content model easily customizable. +#1999-07-02: maler: Added doctype atts and status att. +#2000-03-07: maler: Added cr, issues, and dispcmts to w3c-doctype. +--> + +<!ELEMENT spec (%spec.mdl;)> +<!-- w3c-doctype attributes: + Indicates the type of document, so that the appropriate + stylesheet or workflow routing can be applied. Should + *not* generate any text (such as the "REC-" or "NOTE-" + prefix on the W3C designation content). No default. If + w3c-doctype is "other", other-doctype should be filled in. + + status attribute: + Indicates the stage of review of the document. May affect + the stylesheet's treatment of ednotes (e.g., whether to + output them). No default. --> + +<!ENTITY % local.spec.att ""> +<!ATTLIST spec + %common.att; + %local.spec.att; + w3c-doctype (cr + |dispcmts + |issues + |note + |other + |pr + |rec + |wd) #IMPLIED + other-doctype CDATA #IMPLIED + status (int-review + |ext-review + |final) #IMPLIED +> + +<!ELEMENT front (div1+)> +<!ATTLIST front %common.att;> + +<!ELEMENT body (div1+)> +<!ATTLIST body %common.att;> + +<!-- +#1997-09-30: maler: Added inform-div1 to back content. +--> + +<!ELEMENT back ((div1+, inform-div1*) | inform-div1+)> +<!ATTLIST back %common.att;> + +<!ELEMENT div1 (head, (%div.mix;)*, div2*)> +<!ATTLIST div1 %common.att;> + +<!-- +#1997-09-30: maler: Added inform-div1 declarations. +#2000-03-07: maler: Added div5 level. +--> + +<!-- inform-div1: Non-normative division in back matter --> +<!ELEMENT inform-div1 (head, (%div.mix;)*, div2*)> +<!ATTLIST inform-div1 %common.att;> + +<!ELEMENT div2 (head, (%div.mix;)*, div3*)> +<!ATTLIST div2 %common.att;> + +<!ELEMENT div3 (head, (%div.mix;)*, div4*)> +<!ATTLIST div3 %common.att;> + +<!ELEMENT div4 (head, (%div.mix;)*, div5*)> +<!ATTLIST div4 %common.att;> + +<!ELEMENT div5 (head, (%div.mix;)*)> +<!ATTLIST div5 %common.att;> + +<!-- ............................................................... --> +<!-- Specification header .......................................... --> +<!-- ............................................................... --> + +<!-- +#1998-03-10: maler: Made header content model easily customizable. +--> + +<!ELEMENT header (%header.mdl;)> +<!ATTLIST header %common.att;> + +<!-- Example of title: "Extensible Cheese Language (XCL)" --> +<!ELEMENT title (#PCDATA)> +<!ATTLIST title %common.att;> + +<!-- Example of subtitle: "A Cheesy Specification" --> +<!ELEMENT subtitle (#PCDATA)> +<!ATTLIST subtitle %common.att;> + +<!-- Example of version: "Version 666.0" --> +<!ELEMENT version (#PCDATA)> +<!ATTLIST version %common.att;> + +<!-- Example of w3c-designation: "WD-xcl-19991231" --> +<!ELEMENT w3c-designation (#PCDATA)> +<!ATTLIST w3c-designation %common.att;> + +<!-- Example of w3c-doctype: "W3C Working Draft" --> +<!ELEMENT w3c-doctype (#PCDATA)> +<!ATTLIST w3c-doctype %common.att;> + +<!-- +#1998-03-10: maler: Made pubdate content model easily customizable. +--> + +<!ELEMENT pubdate (%pubdate.mdl;)> +<!ATTLIST pubdate %common.att;> + +<!ELEMENT day (#PCDATA)> +<!ATTLIST day %common.att;> + +<!ELEMENT month (#PCDATA)> +<!ATTLIST month %common.att;> + +<!ELEMENT year (#PCDATA)> +<!ATTLIST year %common.att;> + +<!-- +#1999-07-02: maler: Declared copyright element. +--> + +<!ELEMENT copyright (%hdr.mix;)+> +<!ATTLIST copyright %common.att;> + +<!-- Example of notice: "This draft is for public comment..." --> +<!ELEMENT notice (%hdr.mix;)+> +<!ATTLIST notice %common.att;> + +<!-- +#2000-03-07: maler: Broadened models of *loc to %p.pcd.mix;. +--> + +<!ELEMENT publoc (%p.pcd.mix;)*> +<!ATTLIST publoc %common.att;> + +<!ELEMENT prevlocs (%p.pcd.mix;)*> +<!ATTLIST prevlocs %common.att;> + +<!ELEMENT latestloc (%p.pcd.mix;)*> +<!ATTLIST latestloc %common.att;> + +<!-- loc (defined in "Phrase-level elements" below) --> + +<!ELEMENT authlist (author+)> +<!ATTLIST authlist %common.att;> + +<!-- +#1997-09-30: maler: Made affiliation optional. +#1998-03-10: maler: Made email optional. +--> + +<!ELEMENT author (name, affiliation?, email?)> +<!ATTLIST author %common.att;> + +<!ELEMENT name (#PCDATA)> +<!ATTLIST name + %common.att; + %key.att;> + +<!ELEMENT affiliation (#PCDATA)> +<!ATTLIST affiliation %common.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + + +<!ELEMENT email (#PCDATA)> +<!-- href attribute: + email functions as a hypertext reference through this + required attribute. Typically the reference would use + the mailto: scheme. E.g.: + +<email href="mailto:elm@arbortext.com">elm@arbortext.com</email> + --> + +<!ATTLIST email + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> + +<!-- +#1998-05-15: maler: Changed status content from %statusobj.mix; +# to plain %obj.mix;. statusp is obsolete. +--> + +<!ELEMENT status (%obj.mix;)+> +<!ATTLIST status %common.att;> + +<!ELEMENT abstract (%hdr.mix;)*> +<!ATTLIST abstract %common.att;> + +<!ELEMENT pubstmt (%hdr.mix;)+> +<!ATTLIST pubstmt %common.att;> + +<!ELEMENT sourcedesc (%hdr.mix;)+> +<!ATTLIST sourcedesc %common.att;> + +<!ELEMENT langusage (language+)> +<!ATTLIST langusage %common.att;> + +<!ELEMENT language (#PCDATA)> +<!ATTLIST language %common.att;> + +<!ELEMENT revisiondesc (%hdr.mix;)+> +<!ATTLIST revisiondesc %common.att;> + +<!-- ............................................................... --> +<!-- Paragraph ..................................................... --> +<!-- ............................................................... --> + +<!-- +#1997-09-30: maler: Changed from %obj.mix; to %p.mix;. +#1997-12-29: maler: Changed order of %p.mix; and %p.pcd.mix; +# references. +#1997-12-29: maler: Changed order of %statusobj.mix; and +# %statusp.pcd.mix; references. +#1998-05-14: maler: Removed statusp declarations. +--> + +<!ELEMENT p (%p.pcd.mix;|%p.mix;)*> +<!ATTLIST p %common.att;> + +<!-- ............................................................... --> +<!-- Regular lists ................................................. --> +<!-- ............................................................... --> + +<!-- ulist: Unordered list, typically bulleted. --> +<!ELEMENT ulist (item+)> +<!-- spacing attribute: + Use "normal" to get normal vertical spacing for items; + use "compact" to get less spacing. The default is dependent + on the stylesheet. --> +<!ATTLIST ulist + %common.att; + spacing (normal|compact) #IMPLIED> + +<!-- olist: Ordered list, typically numbered. --> +<!ELEMENT olist (item+)> +<!-- spacing attribute: + Use "normal" to get normal vertical spacing for items; + use "compact" to get less spacing. The default is dependent + on the stylesheet. --> +<!ATTLIST olist + %common.att; + spacing (normal|compact) #IMPLIED> + +<!ELEMENT item (%obj.mix;)+> +<!ATTLIST item %common.att;> + +<!-- slist: Simple list, typically with no mark. --> +<!ELEMENT slist (sitem+)> +<!ATTLIST slist %common.att;> + +<!ELEMENT sitem (%p.pcd.mix;)*> +<!ATTLIST sitem %common.att;> + +<!-- glist: Glossary list, typically two-column. --> +<!ELEMENT glist (gitem+)> +<!ATTLIST glist %common.att;> + +<!ELEMENT gitem (label, def)> +<!ATTLIST gitem %common.att;> + +<!ELEMENT label (%label.pcd.mix;)*> +<!ATTLIST label %common.att;> + +<!ELEMENT def (%obj.mix;)*> +<!ATTLIST def %common.att;> + +<!-- ............................................................... --> +<!-- Special lists ................................................. --> +<!-- ............................................................... --> + +<!-- blist: Bibliography list. --> +<!ELEMENT blist (bibl+)> +<!ATTLIST blist %common.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!ELEMENT bibl (%bibl.pcd.mix;)*> +<!-- href attribute: + bibl optionally functions as a hypertext reference to the + referred-to resource through this attribute. E.g.: + + <bibl href="http://www.my.com/doc.htm">My Document</bibl> + --> +<!ATTLIST bibl + %common.att; + %simple-xlink.att; + %href.att; + %user-replace.att; + %key.att;> + +<!-- orglist: Organization member list. --> +<!ELEMENT orglist (member+)> +<!ATTLIST orglist %common.att;> + +<!-- +#1997-09-30: maler: Added optional affiliation. +--> + +<!ELEMENT member (name, affiliation?, role?)> +<!ATTLIST member %common.att;> + +<!-- name (defined in "Specification header" above) --> +<!-- affiliation (defined in "Specification header" above) --> + +<!ELEMENT role (#PCDATA)> +<!ATTLIST role %common.att;> + +<!-- ............................................................... --> +<!-- Notes ......................................................... --> +<!-- ............................................................... --> + +<!ELEMENT note (%obj.mix;)+> +<!ATTLIST note %common.att;> + +<!-- +#1998-05-14: maler: Declared issue element. +#2000-03-07: maler: Added head, source, resolution, and status. +--> + +<!ELEMENT issue (head?, source*, (%obj.mix;)+, resolution?)> +<!-- status attribute: + Indicates whether the issue is open or closed. Note that + the lack of a resolution element does not necessarily mean + that the issue is still open. --> +<!ATTLIST issue + id ID #REQUIRED + %role.att; + %diff.att; + status (open + |closed) "open" +> + +<!ELEMENT source (%p.pcd.mix;)*> +<!ATTLIST source + %common.att;> + +<!ELEMENT resolution (%obj.mix;)+> +<!ATTLIST resolution %common.att;> + +<!-- wfcnote: Well-formedness constraint note. --> +<!ELEMENT wfcnote (head, (%obj.mix;)+)> +<!-- ID attribute: + wfcnote must have an ID so that it can be pointed to + from a wfc element in a production. --> +<!ATTLIST wfcnote + %common-idreq.att;> + +<!-- vcnote: Validity constraint note. --> +<!ELEMENT vcnote (head, (%obj.mix;)+)> +<!-- ID attribute: + vcnote must have an ID so that it can be pointed to + from a vc element in a production. --> +<!ATTLIST vcnote + %common-idreq.att;> + +<!-- +#1998-05-21: maler: Declared generic constraintnote element. +--> + +<!-- constraintnote: Generic constraint note. --> +<!ELEMENT constraintnote (head, (%obj.mix;)+)> +<!-- ID attribute: + constraintnote must have an ID so that it can be + pointed to from a constraint element in a production. --> +<!-- type attribute: + constraintnote must have a type value keyword so that + it can be correctly characterized in the specification. --> +<!ATTLIST constraintnote + %common-idreq.att; + type NMTOKEN #REQUIRED> + +<!-- ............................................................... --> +<!-- Basic display elements ........................................ --> +<!-- ............................................................... --> + +<!-- +#1998-03-23: maler: Added xml:space attribute. +--> + +<!-- eg: Example element, with whitespace respected. --> +<!ELEMENT eg (%eg.pcd.mix;)*> +<!ATTLIST eg + %common.att; + %xmlspace.att;> + +<!-- +#2000-03-07: maler: Removed the xml:attributes attribute. +# Added %local.graphic.att;. +--> + +<!-- graphic: Displayed graphic. Graphic data should be + displayed at the point where it is referenced. Not + actually conforming to XLink right now. --> +<!ELEMENT graphic EMPTY> +<!-- source attribute: + The graphic data must reside at the location pointed to. --> +<!ENTITY % local.graphic.att ""> +<!ATTLIST graphic + %common.att; + %simple-xlink.att; + source CDATA #REQUIRED + %auto-embed.att; + alt CDATA #IMPLIED + %local.graphic.att;> + +<!-- +#2000-03-07: maler: Added proto element structure. +--> + +<!-- proto: Function prototype, in the XPath/XPointer style. --> +<!ELEMENT proto (arg*)> + +<!ENTITY % local.proto.att ""> +<!ATTLIST proto + %common.att; + %local.proto.att; + name NMTOKEN #REQUIRED + return-type %argtypes; #REQUIRED +> + +<!ENTITY % local.arg.att ""> +<!ELEMENT arg EMPTY> +<!ATTLIST arg + %common.att; + %local.arg.att; + type %argtypes; #REQUIRED + occur (opt|req) #IMPLIED +> + +<!-- +#2000-03-07: maler: Added example element. +--> + +<!ELEMENT example (head?, (%obj.mix;)+)> +<!ATTLIST example %common.att;> + +<!-- ............................................................... --> +<!-- EBNF .......................................................... --> +<!-- ............................................................... --> + +<!-- +#1997-11-28: maler: Added prodgroup to scrap and defined it. +#1998-05-21: maler: Added constraint to prod. +#1999-07-02: maler: Added prodrecap to scrap; broadened scrap model. +# Added headstyle attribute to scrap. +--> + +<!-- scrap: Collection of EBNF language productions. --> +<!ELEMENT scrap (head, (prodgroup | prod | bnf | prodrecap)+)> +<!-- lang attribute: + The scrap can link to a description of the language used, + found in a language element in the header. + headstyle attribute: + Allows a scrap title to be suppressed from output. To be + used only when a scrap title directly next to a section + title is distracting or repetetive. --> +<!ATTLIST scrap + %common.att; + lang IDREF #IMPLIED + headstyle (show|suppress) "show" +> + +<!-- prodgroup: Sub-collection of productions, needed for + formatting reasons. --> +<!ELEMENT prodgroup (prod+)> +<!-- pcw<n> attributes: + Presentational attributes to control the width + of the "pseudo-table" columns used to output + groups of productions. --> +<!ATTLIST prodgroup + %common.att; + pcw1 CDATA #IMPLIED + pcw2 CDATA #IMPLIED + pcw3 CDATA #IMPLIED + pcw4 CDATA #IMPLIED + pcw5 CDATA #IMPLIED +> + +<!-- prod: EBNF language production. --> +<!ELEMENT prod (lhs, (rhs, (com|wfc|vc|constraint)*)+)> +<!-- ID attribute: + The production must have an ID so that cross-references + (specref) and mentions of nonterminals (nt) can link to + it. --> +<!ATTLIST prod + %common-idreq.att;> + +<!-- lhs: Left-hand side of production. --> +<!ELEMENT lhs (#PCDATA)> +<!ATTLIST lhs %common.att;> + +<!-- rhs: Right-hand side of production; may have many + "right-hand sides," one to a line. --> +<!ELEMENT rhs (#PCDATA|nt|xnt|com)*> +<!ATTLIST rhs %common.att;> + +<!-- nt and xnt (defined in "Phrase-level elements" below) --> + +<!-- +#1997-11-28: maler: Added loc and bibref to com content. +--> + +<!-- com: Production comment. --> +<!ELEMENT com (#PCDATA|loc|bibref)*> +<!ATTLIST com %common.att;> + +<!-- wfc: Reference to a well-formedness constraint; should + generate the head of the wfcnote pointed to. --> +<!ELEMENT wfc EMPTY> +<!-- def attribute: + Each well formedness tagline in a production must link to the + wfcnote that defines it. --> +<!ATTLIST wfc + %def-req.att; + %common.att;> + +<!-- vc: Reference to a validity constraint; should generate + the head of the vcnote pointed to. --> +<!ELEMENT vc EMPTY> +<!-- def attribute: + Each validity tagline in a production must link to the vcnote + that defines it. --> +<!ATTLIST vc + %def-req.att; + %common.att;> + +<!-- +#1998-05-21: maler: Declared generic constraint element. +--> + +<!-- constraint: Reference to a generic constraint; should + generate the head of the constraintnote pointed to. --> +<!ELEMENT constraint EMPTY> +<!-- def attribute: + Each constraint tagline in a production must link to the + constraint note that defines it. --> +<!ATTLIST constraint + %def-req.att; + %common.att;> + +<!-- +#1998-03-23: maler: Added xml:space attribute. +--> + +<!-- bnf: Un-marked-up EBNF production, with whitespace + respected. --> +<!ELEMENT bnf (%eg.pcd.mix;)*> +<!ATTLIST bnf + %common.att; + %xmlspace.att;> + +<!-- +#1999-07-02: maler: Declared prodrecap. +--> + +<!-- prodrecap: Reference to production or bnf that appears + in its "normative" form elsewhere in the spec; should + generate a copy of the original production, without + a production number next to it. --> +<!ELEMENT prodrecap EMPTY> +<!ATTLIST prodrecap + %common.att; + %ref-req.att;> + +<!-- ............................................................... --> +<!-- Table ......................................................... --> +<!-- ............................................................... --> + +<!-- +#1997-10-16: maler: Added table mechanism. +#1997-11-28: maler: Added non-null system ID to entity declaration. +# Added HTML table module. +#1997-12-29: maler: IGNOREd SGML Open table model. +#1998-03-10: maler: Removed SGML Open table model. +# Merged html-tbl.mod file into main file. +# Added %common.att; to all HTML table elements. +#1998-05-14: maler: Replaced table model with full HTML 4.0 model. +# Removed htable in favor of table. +# Removed htbody in favor of tbody. +--> + +<!ENTITY % cellhalign.att + 'align (left|center + |right|justify + |char) #IMPLIED + char CDATA #IMPLIED + charoff CDATA #IMPLIED'> + +<!ENTITY % cellvalign.att + 'valign (top|middle + |bottom + |baseline) #IMPLIED'> + +<!ENTITY % thtd.att + 'abbr CDATA #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + scope (row + |col + |rowgroup + |colgroup) #IMPLIED + rowspan NMTOKEN "1" + colspan NMTOKEN "1"'> + +<!ENTITY % width.att + 'width CDATA #IMPLIED'> + +<!ENTITY % span.att + 'span NMTOKEN "1"'> + +<!-- table: HTML-based geometric table model. --> +<!ELEMENT table + (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)> +<!ATTLIST table + %common.att; + %width.att; + summary CDATA #IMPLIED + border CDATA #IMPLIED + frame (void|above + |below|hsides + |lhs|rhs + |vsides|box + |border) #IMPLIED + rules (none|groups + |rows|cols + |all) #IMPLIED + cellspacing CDATA #IMPLIED + cellpadding CDATA #IMPLIED> + +<!ELEMENT caption (%p.pcd.mix;)*> +<!ATTLIST caption %common.att;> + +<!ELEMENT col EMPTY> +<!ATTLIST col + %common.att; + %span.att; + %width.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT colgroup (col)*> +<!ATTLIST colgroup + %common.att; + %span.att; + %width.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT thead (tr)+> +<!ATTLIST thead + %common.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT tfoot (tr)+> +<!ATTLIST tfoot + %common.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT tbody (tr)+> +<!ATTLIST tbody + %common.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT tr (th|td)+> +<!ATTLIST tr + %common.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT th (%p.pcd.mix;|%p.mix;)*> +<!ATTLIST th + %common.att; + %thtd.att; + %cellhalign.att; + %cellvalign.att;> + +<!ELEMENT td (%p.pcd.mix;|%p.mix;)*> +<!ATTLIST td + %common.att; + %thtd.att; + %cellhalign.att; + %cellvalign.att;> + +<!-- ............................................................... --> +<!-- IDL structures for DOM specifications ......................... --> +<!-- ............................................................... --> + +<!-- ............................................................... --> +<!-- Specialized entities for classes .............................. --> + +<!ENTITY % idl-desc.class + "p|note"> + +<!ENTITY % idl-tdef.class + "typedef|constant|exception|reference|group"> + +<!ENTITY % idl-mod.class + "module|interface"> + +<!ENTITY % idl-struct.class + "struct|enum|sequence|union|typename"> + +<!ENTITY % idl-meth.class + "method|attribute"> + +<!-- ............................................................... --> +<!-- Specialized entities for mixtures ............................. --> + +<!-- Quick reference to content model mixtures: + + desc tdef mod struct meth +group x x x x x +definitions, module x x x +interface x x x +typedef, case, component x +--> + +<!ENTITY % idl-grp.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class; + |%idl-struct.class;|%idl-meth.class;"> + +<!ENTITY % idl-defn.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class;"> + +<!ENTITY % idl-intfc.mix + "%idl-desc.class;|%idl-tdef.class;|%idl-meth.class;"> + +<!ENTITY % idl-type.mix + "%idl-struct.class;"> + +<!-- ............................................................... --> +<!-- Specialized entities for common attributes .................... --> + +<!-- name attribute: + Provides a name. Required. --> +<!ENTITY % idl-name.att + 'name CDATA #REQUIRED'> + +<!-- type attribute: + Provides a type. Required. --> +<!ENTITY % idl-type.att + 'type CDATA #REQUIRED'> + +<!-- ............................................................... --> +<!-- Common IDL element ............................................ --> + +<!ELEMENT descr ((%obj.mix;)*)> +<!ATTLIST descr %common.att;> + +<!-- ............................................................... --> +<!-- IDL definition elements ....................................... --> + +<!-- definitions: Top-level element for definitions. --> +<!ELEMENT definitions (%idl-defn.mix;)+> +<!ATTLIST definitions %common.att;> + +<!-- group: Element used to group a set of definitions. --> + +<!ELEMENT group (descr, (%idl-grp.mix;)*)> +<!ATTLIST group + %common.att; + %idl-name.att;> + +<!-- interface: Definition of an interface. --> +<!ELEMENT interface (descr, (%idl-intfc.mix;)*)> +<!ATTLIST interface + %common.att; + %idl-name.att; + inherits CDATA #IMPLIED> + +<!-- module: Definition of a module. --> +<!ELEMENT module (descr, (%idl-defn.mix;)*)> +<!ATTLIST module + %common.att; + %idl-name.att;> + +<!-- reference: Reference to some other declaration. --> +<!ELEMENT reference EMPTY> +<!ATTLIST reference + %common.att; + declaration IDREF #REQUIRED> + +<!-- typedef: Definition of a named type. --> +<!ELEMENT typedef (descr, (%idl-type.mix;))> +<!ATTLIST typedef + %common.att; + %idl-name.att; + array.size NMTOKEN #IMPLIED> + +<!-- struct: Declaration of a struct type. --> +<!ELEMENT struct (descr, component+)> +<!ATTLIST struct + %common.att; + %idl-name.att;> + +<!-- component: Declaration of a structural member. --> +<!ELEMENT component (%idl-type.mix;)> +<!ATTLIST component + %common.att; + %idl-name.att;> + +<!-- union: Declaration of a union type. --> +<!ELEMENT union (descr, case+)> +<!ATTLIST union + %common.att; + %idl-name.att; + switch.type CDATA #REQUIRED> + +<!ELEMENT case (descr, (%idl-type.mix;))> +<!ATTLIST case + %common.att; + labels CDATA #REQUIRED> + +<!-- enum: Declaration of an enum type. --> +<!ELEMENT enum (descr, enumerator+)> +<!ATTLIST enum + %common.att; + %idl-name.att;> + +<!ELEMENT enumerator (descr)> +<!ATTLIST enumerator + %common.att; + %idl-name.att;> + +<!-- sequence: Declaration of a sequence type (not named). --> +<!ELEMENT sequence (sequence*)> +<!ATTLIST sequence + %common.att; + %idl-type.att; + size NMTOKEN #IMPLIED> + +<!-- constant: Declaration of a named constant. --> +<!ELEMENT constant (descr)> +<!ATTLIST constant + %common.att; + %idl-name.att; + %idl-type.att; + value CDATA #REQUIRED> + +<!-- exception: Declaration of an exception. --> +<!ELEMENT exception (descr, component*)> +<!ATTLIST exception + %common.att; + %idl-name.att;> +<!-- component (defined under struct, above)--> + +<!-- attribute: Declaration of an attribute (data member). --> +<!ELEMENT attribute (descr)> +<!ATTLIST attribute + %common.att; + %idl-name.att; + %idl-type.att; + readonly (yes + |no) "no"> + +<!-- method: Declaration of a method. --> +<!ELEMENT method (descr, parameters, returns, raises)> +<!ATTLIST method + %common.att; + %idl-name.att;> + +<!ELEMENT parameters (param*)> +<!ATTLIST parameters %common.att;> + +<!ELEMENT param (descr)> +<!ATTLIST param + %common.att; + %idl-name.att; + %idl-type.att; + attr (in + |out + |inout) "inout"> + +<!ELEMENT returns (descr)> +<!ATTLIST returns + %common.att; + %idl-type.att;> + +<!ELEMENT raises (exception*)> +<!-- exception (defined under constant, above)--> + +<!ELEMENT typename (#PCDATA)> +<!ATTLIST typename %common.att;> + +<!-- ............................................................... --> +<!-- Phrase-level elements ......................................... --> +<!-- ............................................................... --> + +<!-- +#2000-03-07: maler: Added att and attval elements. +--> + +<!-- att: Attribute name. --> +<!ELEMENT att (%tech.pcd.mix;)*> +<!ATTLIST att %common.att;> + +<!-- attval: Attribute value. --> +<!ELEMENT attval (%tech.pcd.mix;)*> +<!ATTLIST attval %common.att;> + +<!-- bibref: Reference to a bibliography list entry; should + generate, in square brackets, "key" on bibl. --> +<!ELEMENT bibref EMPTY> +<!-- ref attribute: + A bibliography reference must link to the bibl element that + describes the resource. --> +<!ATTLIST bibref + %common.att; + %ref-req.att;> + +<!ELEMENT code (%tech.pcd.mix;)*> +<!ATTLIST code %common.att;> + +<!-- +#1998-03-10: maler: Declared ednote and related elements. +#1999-07-02: maler: Changed edtext content from #PCDATA to %p.pcd.mix;. +--> + +<!-- ednote: Editorial note for communication among editors. --> +<!ELEMENT ednote (name?, date?, edtext)> +<!ATTLIST ednote %common.att;> + +<!ELEMENT date (#PCDATA)> +<!ATTLIST date %common.att;> + +<!ELEMENT edtext (%p.pcd.mix;)*> +<!ATTLIST edtext %common.att;> + +<!-- +#2000-03-07: maler: Added el element. +--> + +<!-- el: Element type name (GI). --> +<!ELEMENT el (%tech.pcd.mix;)*> +<!ATTLIST el %common.att;> + +<!-- +#2000-03-07: maler: Expanded emph to %p.pcd.mix;. +--> + +<!ELEMENT emph (%p.pcd.mix;)*> +<!ATTLIST emph %common.att;> + +<!-- footnote: Both footnote content and call to footnote. --> +<!ELEMENT footnote (%obj.mix;)+> +<!ATTLIST footnote %common.att;> + +<!-- +#2000-03-07: maler: Added function and gave it content of +# %tech.pcd.mix; instead of XPath's #PCDATA. +--> + +<!ELEMENT function (%tech.pcd.mix;)*> +<!ATTLIST function %common.att;> + +<!ELEMENT kw (%tech.pcd.mix;)*> +<!ATTLIST kw %common.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- loc: Generic link to a Web resource, similar to HTML's A. --> +<!ELEMENT loc (#PCDATA)> +<!-- href attribute: + The purpose of a loc element is to function as a A-like + hypertext link to a resource. (Ideally, the content of loc + will also mention the URI of the resource, so that readers of + the printed version will be able to locate the resource.) E.g.: + +<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc> + --> +<!ATTLIST loc + %common.att; + %simple-xlink.att; + %href-req.att; + %user-replace.att;> + +<!-- nt: Mention of a nonterminal in text, along with a link to + the production in the current document that defines it. --> +<!ELEMENT nt (#PCDATA)> +<!-- def attribute: + The nonterminal must link to the production that defines + it. --> +<!ATTLIST nt + %common.att; + %def-req.att;> + +<!-- +#2000-03-07: maler: Declared phrase. +--> + +<!-- phrase: "Attribute hanger" for small bits of (e.g.) differenced + text in a paragraph or similar, when another element isn't handy. + Beware that its content model may allow more nested elements than + would normally be allowed in some contexts. --> +<!ELEMENT phrase (%p.pcd.mix;)*> +<!ATTLIST phrase %common.att;> + +<!-- +#1998-03-10: maler: Declared quote. +--> + +<!-- quote: Scare quotes and other purely presentational quotes. --> +<!ELEMENT quote (%p.pcd.mix;)*> +<!ATTLIST quote %common.att;> + +<!-- specref: Reference to a div, olist item, prod, or issue + in the current document; should generate italic "[n.n], + Section Title" for div, "n" for numbered item, "[n]" for + production, or "Issue id" for issue. --> +<!ELEMENT specref EMPTY> +<!-- ref attribute: + The purpose of a specref element is to link to a div, item + in an olist, or production in the current spec. --> +<!ATTLIST specref + %common.att; + %ref-req.att;> + +<!-- +#2000-03-07: maler: Added sub and sup. +--> + +<!-- sub: Subscript. --> +<!ELEMENT sub (#PCDATA)> +<!ATTLIST sub %common.att;> + +<!-- sup: Superscript. --> +<!ELEMENT sup (#PCDATA)> +<!ATTLIST sup %common.att;> + +<!-- term: The term in text that is being defined in text. --> +<!ELEMENT term (#PCDATA)> +<!ATTLIST term %common.att;> + +<!-- termdef: Definition of a term in text. --> +<!ELEMENT termdef (%termdef.pcd.mix;|%termdef.mix;)*> +<!-- ID attribute: + A term definition must have an ID so that it can be linked + to from termref elements. --> +<!-- term attribute: + The canonical form of the term or phrase being defined must + appear in this attribute, even if the term or phrase also + appears in the element content in identical form (e.g., in + the term element). --> +<!ATTLIST termdef + %common-idreq.att; + term CDATA #REQUIRED> + +<!-- termref: Mention of a term, along with a link to the + definition in the current document. --> +<!ELEMENT termref (#PCDATA)> +<!-- ref attribute: + A term reference must link to the termdef element that + defines the term. --> +<!ATTLIST termref + %common.att; + %def-req.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- titleref: Citation of another document, which can also + link to that document if it is a Web resource. --> +<!ELEMENT titleref (#PCDATA)> +<!-- href attribute: + A title reference can optionally function as a hypertext + link to the resource with this title. E.g.: + +<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc> + --> + +<!ATTLIST titleref + %common.att; + %simple-xlink.att; + %href.att; + %user-new.att;> + +<!-- +#2000-03-07: maler: Added var. +--> + +<!-- var: String standing for a variable value that the user + or system will supply. For example: "For each node + <var>x</var> in this node-set..." --> +<!ELEMENT var (%tech.pcd.mix;)*> +<!ATTLIST var %common.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- xnt: Mention of a nonterminal in text, along with a link to + the production in another document that defines it. --> +<!ELEMENT xnt (#PCDATA)> +<!-- href attribute: + The nonterminal must hyperlink to a resource that serves + to define it (e.g., a production in a related XML + specification). E.g.: + +<xnt href="http://www.w3.org/TR/spec.htm#prod3">Name</xnt> + --> + +<!ATTLIST xnt + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> + +<!-- +#1997-12-29: maler: Declared xspecref. +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- xspecref: Reference to a div, olist item, prod, or issue + in a related specification document; should generate + no special text. --> +<!ELEMENT xspecref (#PCDATA)> +<!-- href attribute: + The spec reference must hyperlink to the resource to + cross-refer to (e.g., a section in a related XML + specification). E.g.: + +<xspecref href="http://www.w3.org/TR/spec.htm#sec2"> +the section on constraints</xspecref> + --> + +<!ATTLIST xspecref + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> + +<!-- +#1999-07-02: maler: Added show/actuate attributes and default values. +--> + +<!-- termref: Mention of a term, along with a link to the + definition in a related document. --> +<!ELEMENT xtermref (#PCDATA)> +<!-- href attribute: + The term reference must hyperlink to the resource that + serves to define the term (e.g., a term definition in + a related XML specification). E.g.: + +<xtermref href="http://www.w3.org/TR/spec.htm#term5"> +entity +</xtermref> + --> + +<!ATTLIST xtermref + %common.att; + %simple-xlink.att; + %href-req.att; + %user-new.att;> + +<!-- ............................................................... --> +<!-- Unused elements for ADEPT ..................................... --> +<!-- ............................................................... --> + +<!-- +#1997-09-30: maler: Added unusued elements. +#1997-10-14: maler: Fixed div to move nested div to the mixture. +#1998-05-14: maler: Added key-term, htable, and htbody. +#1998-11-30: maler: Added para, listitem, itemizedlist, and orderedlist. +--> + +<!-- The following elements are purposely declared but never + referenced. Declaring them allows them to be pasted from + an HTML document, an earlier version of an XMLspec document, + or a DocBook document into a document using this DTD in ADEPT. + The ATD Context Transformation mechanism will try to convert + them to the appropriate element for this DTD. While this + conversion will not work for all fragments, it does allow many + cases to work reasonably well. --> + +<!ELEMENT div + (head?, (%div.mix;|ul|ol|h1|h2|h3|h4|h5|h6|div)*)> +<!ELEMENT h1 (%head.pcd.mix;|em|a)*> +<!ELEMENT h2 (%head.pcd.mix;|em|a)*> +<!ELEMENT h3 (%head.pcd.mix;|em|a)*> +<!ELEMENT h4 (%head.pcd.mix;|em|a)*> +<!ELEMENT h5 (%head.pcd.mix;|em|a)*> +<!ELEMENT h6 (%head.pcd.mix;|em|a)*> +<!ELEMENT pre (%eg.pcd.mix;|em)*> +<!ELEMENT ul (item|li)*> +<!ELEMENT ol (item|li)*> +<!ELEMENT li (#PCDATA|%obj.mix;)*> +<!ELEMENT em (#PCDATA)> +<!ELEMENT a (#PCDATA)> + +<!ELEMENT key-term (#PCDATA)> +<!ELEMENT htable + (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)> +<!ELEMENT htbody (tr)+> +<!ELEMENT statusp (%p.pcd.mix;|%p.mix;)*> + +<!ELEMENT itemizedlist (listitem*)> +<!ELEMENT orderedlist (listitem*)> +<!ELEMENT listitem (para*)> +<!ELEMENT para (#PCDATA)> + +<!-- ............................................................... --> +<!-- Change history ................................................ --> +<!-- ............................................................... --> + +<!-- +#1997-08-18: maler +#- Did a major revision. +#1997-09-10: maler +#- Updated FPI. +#- Removed namekey element and put key attribute on name element. +#- Made statusp element and supporting entities. +#- Added slist element with sitem+ content. +#- Required head on scrap and added new bnf subelement. +#- Added an xnt element and allowed it and nt in regular text and rhs. +#- Removed the ntref element. +#- Added back the com element to the content of rhs. +#- Added a key attribute to bibl. +#- Removed the ident element. +#- Added a term element to be used inside termdef. +#- Added an xtermref element parallel to termref. +#- Beefed up DTD comments. +#1997-09-12: maler +#- Allowed term element in general text. +#- Changed bibref to EMPTY. +#- Added ref.class to termdef.pcd.mix. +#1997-09-14: maler +#- Changed main attribute of xtermref from def to href. +#- Added termdef.class to label contents. +#1997-09-30: maler +#- Added character entity module and added new entities. +#- Removed p from appearing directly in self; created %p.mix;. +#- Added inform-div (non-normative division) element. +#- Fixed xtermref comment to mention href, not ref. +#- Extended orglist model to allow optional affiliation. +#- Modified author to make affiliation optional. +#- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;. +#- Added %note.class; and %illus.class; to %termdef.pcd.mix;. +#- Added unused HTML elements. +#- Put empty system ID next to public ID in entity declarations. +#1997-10-14: maler +#- Fixed "unused" div content model to move nested div to mixture. +#1997-10-16: maler +#- Added SGML Open Exchange tables. +#1997-11-28: maler +#- Added support for prodgroup and its attributes. +#- Added support for HTML tables. +#- Added loc and bibref to content of com. +#- Added loc to general p content models. +#- Allowed p as alternative to statusp in status. +#- Added non-null system IDs to external parameter entity declarations. +#- (Modified the SGML Open table module to make it XML-compliant.) +#- (Modified the character entity module.) +#1997-12-29: maler +#- Moved #PCDATA occurrences to come before GIs in content models. +#- Removed use of the SGML Open table module. +#- Added xspecref element. +#- Ensured that all FPIs contain 4-digit year. +#- (Modified the character entity module.) +#1998-03-10: maler +#- Merged the character entity and table modules into the main file. +#- Added ldquo and rdquo entities. +#- Added common attributes to prodgroup. +#- Made the email element in header optional. +#- Removed reference to the SGML Open table model. +#- Added ednote element. +#- Added quote element. +#- Updated XLink usage to reflect 3 March 1998 WD. +#- Added "local" entities to the class entities for customization. +#- Parameterized several content models to allow for customization. +#1998-03-23: maler +#- Cleaned up some comments and removed some others. +#- Added xml:space semi-common attribute to eg and bnf elements. +#- Added show and embed attributes on all the uses of href. +#- Added %common.att; to all HTML table elements. +#- Added a real URI to the "typical invocation" comment. +#1998-05-14: maler +#- Fixed mdash, ldquo, and rdquo character entities. +#- Switched to the full HTML 4.0 table model. +#- Removed htable/htbody elements and replaced them with table/tbody. +#- Added issue element to %note.class; and declared it. +#- Allowed prevlocs and latestloc in either order. +#- Added key-term, htable, htbody, and statusp as unused elements. +#- Removed real statusp element in favor of plain p. +#1998-05-21: maler +#- Declared generic constraint and constraintnote elements. +#- Added constraintnote to %note.class;. +#- Added constraint to %eg.pcd.mix; and prod content model. +#1998-08-22: maler +#- Fixed %illus.class; to mention table instead of htable. +#- Added definitions to %illus.class; for DOM model. +#- Added DOM definitions element and its substructure. +#- Updated XLink usage in %href.att; to use xlink:form and #IMPLIED. +#- Added clarifying comments to href-using elements. +#1998-11-30: maler +#- Added new unused elements to support DocBook translation. +#- Updated maler phone numbers. +#1998-12-3: maler +#- Fixed character entities with respect to escaping of ampersands. +#- Added many more explanatory comments. +#1999-07-02: maler +#- Added %loc.class; to all PCD mixes that didn't already have it. +#- Removed unused %loc.pcd.mix;. +#- Made version in spec header optional. +#- Added three new attributes to spec. +#- Broadened content of edtext. +#- Added optional copyright element to header. +#- Reorganized XLink-related parameter entities; added xmlns:xlink. +#- Changed edtext content from #PCDATA to %p.pcd.mix;. +#- Added show/actuate atts and default values to all href elements. +#- Changed versioning scheme from 8-digit dates to version numbers. +#- Added w3c-doctype, other-doctype, status atts to spec element. +#- Added prodrecap element inside scrap. +#- Added headstyle attribute to scrap. +#2000-03-07: maler +#- Added proto element, its arg subelement, and the %argtypes; entity. +#- Added function, var, sub, sup, phrase, el, att, attval elements. +#- Expanded emph to %p.pcd.mix;. +#- Allowed status and abstract to appear in the opposite order. +#- Updated XLink usage to the latest WD, except for href and source. +#- Removed the xml:attributes attribute from graphic. +#- Added %local.graphic.att; to graphic. +#- Added common diff attribute. +#- Added div5 element. +#- Broadened content models of publoc, prevlocs, and latestloc. +#- Added head, source, resolution, and status attribute to issue. +#- Added cr, issues, and dispcmts to w3c-doctype attribute on spec. +#- Added example element. +--> + +<!-- ............................................................... --> +<!-- End of XML specification DTD .................................. --> +<!-- ............................................................... --> diff --git a/htdocs/sgml-lib/xhtml-math-svg-20020430.dtd b/htdocs/sgml-lib/xhtml-math-svg-20020430.dtd new file mode 100644 index 0000000..6da65d0 --- /dev/null +++ b/htdocs/sgml-lib/xhtml-math-svg-20020430.dtd @@ -0,0 +1,381 @@ +<!-- ....................................................................... --> +<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD ........................... --> +<!-- URI: http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd +--> + +<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD + + This is a prototype extension of XHTML 1.1 incorporating MathML 2.0 + and SVG 1.1. + + Copyright 2002 World Wide Web Consortium + (Massachusetts Institute of Technology, Institut National de + Recherche en Informatique et en Automatique, Keio University). + All Rights Reserved. + + Permission to use, copy, modify and distribute this DTD and its + accompanying documentation for any purpose and without fee is hereby + granted in perpetuity, provided that the above copyright notice and + this paragraph appear in all copies. The copyright holders make no + representation about the suitability of the DTD for any purpose. + + It is provided "as is" without expressed or implied warranty. + + Editors: Murray M. Altheim <altheim@eng.sun.com> (XHTML modules) + David Carlisle <davidc@nag.co.uk> (MathML modules) + Jun Fujisawa <fujisawa.jun@canon.co.jp> (SVG modules) + Masayasu Ishikawa <mimasa@w3.org> (DTD driver) + Revision: + $Id: xhtml-math-svg-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + +--> +<!-- This is the driver for an XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD. +--> + +<!-- Switches to include/ignore each vocabulary. +--> +<!ENTITY % XHTML.module "INCLUDE" > +<!ENTITY % MATHML.module "INCLUDE" > +<!ENTITY % SVG.module "INCLUDE" > + +<![%XHTML.module;[ +<!ENTITY % XHTML.version + "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" > +]]> + +<!-- Use the following entities to identify the namespaces: +--> +<!ENTITY % XHTML.xmlns "http://www.w3.org/1999/xhtml" > +<!ENTITY % MATHML.xmlns "http://www.w3.org/1998/Math/MathML" > +<!ENTITY % MATHML.pref.xmlns "http://www.w3.org/2002/Math/preference" > +<!ENTITY % SVG.xmlns "http://www.w3.org/2000/svg" > +<!ENTITY % XLINK.xmlns "http://www.w3.org/1999/xlink" > + +<!-- Declare base URIs for the relevant DTD modules. +--> +<![%XHTML.module;[ +<!ENTITY % XHTML.sysid.base + "http://www.w3.org/TR/xhtml-modularization/DTD/" > +]]> +<![%MATHML.module;[ +<!ENTITY % MATHML.sysid.base + "http://www.w3.org/TR/MathML2/dtd/" > +]]> +<![%SVG.module;[ +<!ENTITY % SVG.sysid.base + "http://www.w3.org/Graphics/SVG/1.1/DTD/" > +]]> + +<!-- Declare system identifiers for the relevant DTD modules. +--> +<![%XHTML.module;[ +<!ENTITY % XHTML.dtd.sysid + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" > +]]> +<![%MATHML.module;[ +<!ENTITY % MATHML.dtd.sysid + "%MATHML.sysid.base;mathml2.dtd" > +<!ENTITY % MATHML.qname.sysid + "%MATHML.sysid.base;mathml2-qname-1.mod" > +]]> +<![%SVG.module;[ +<!ENTITY % SVG.dtd.sysid + "%SVG.sysid.base;svg11.dtd" > +]]> + +<!-- See the XHTML / MathML / SVG Qualified Names modules for information + on the use of namespace prefixes in the DTD. Default values are + as follows: + + <!ENTITY % NS.prefixed "IGNORE" > + <!ENTITY % XHTML.prefixed "%NS.prefixed;" > + <!ENTITY % XHTML.prefix "" > + <!ENTITY % MATHML.prefixed "%NS.prefixed;" > + <!ENTITY % MATHML.prefix "m" > + <!ENTITY % MATHML.pref.prefixed "IGNORE" > + <!ENTITY % MATHML.pref.prefix "pref" > + <!ENTITY % SVG.prefixed "%NS.prefixed;" > + <!ENTITY % SVG.prefix "" > + <!ENTITY % XLINK.prefix "xlink" > + + In this DTD driver, XHTML and MathML are not prefixed, and SVG is + prefixed by default. It can be changed by redeclaring the above + parameter entities. +--> +<!ENTITY % XHTML.prefixed "IGNORE" > +<!ENTITY % MATHML.prefixed "IGNORE" > +<!ENTITY % MATHML.prefix "m" > +<!ENTITY % MATHML.pref.prefixed "IGNORE" > +<!ENTITY % MATHML.pref.prefix "pref" > +<!ENTITY % SVG.prefixed "INCLUDE" > +<!ENTITY % SVG.prefix "svg" > +<!ENTITY % XLINK.prefix "xlink" > + +<!-- a URI reference, see [URI] --> +<!ENTITY % URI.datatype "CDATA" > + +<!-- Declare a parameter entity %XLINK.xmlns.attrib; containing + the XML Namespace declarations for XLink. +--> +<!ENTITY % XLINK.xmlns.attrib + "xmlns:%XLINK.prefix; %URI.datatype; #FIXED '%XLINK.xmlns;'" +> + +<!-- Allow universal MathML stylesheet-related declarations. + When it is used, it must always be prefixed. +--> +<![%MATHML.module;[ +<![%MATHML.pref.prefixed;[ +<!ENTITY % MATHML.pref.renderer.extra ""> +<!ENTITY % MATHML.pref.renderer + "css | mathplayer-dl | mathplayer | techexplorer-plugin | techexplorer"> +<!ENTITY % MATHML.pref.xmlns.attrib + "xmlns:%MATHML.pref.prefix; %URI.datatype; #FIXED '%MATHML.pref.xmlns;' + %MATHML.pref.prefix;:renderer + ( %MATHML.pref.renderer; %MATHML.pref.renderer.extra; ) #IMPLIED" +> +]]> +]]> +<!ENTITY % MATHML.pref.xmlns.attrib "" > + +<!-- The parameter entities %SVG.xmlns.extra.attrib; and + %XHTML.xmlns.extra.attrib; may be redeclared to contain + any foreign namespace declarations for namespaces embedded + in XHTML+MathML+SVG. The default value is an empty string. +--> +<!ENTITY % SVG.xmlns.extra.attrib "" > +<!ENTITY % XHTML.xmlns.extra.attrib "" > + +<!-- Declare parameter entities to define XML Namespace declarations + for SVG, XHTML and MathML. +--> +<![%SVG.module;[ +<![%SVG.prefixed;[ +<!ENTITY % SVG.xmlns.decl.attrib + "xmlns:%SVG.prefix; %URI.datatype; #FIXED '%SVG.xmlns;'" +> +]]> +<!ENTITY % SVG.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%SVG.xmlns;'" +> +]]> +<!ENTITY % SVG.xmlns.decl.attrib "" > + +<![%XHTML.module;[ +<![%XHTML.prefixed;[ +<!ENTITY % XHTML.xmlns.decl.attrib + "xmlns:%XHTML.prefix; %URI.datatype; #FIXED '%XHTML.xmlns;'" +> +]]> +<!ENTITY % XHTML.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%XHTML.xmlns;'" +> +]]> +<!ENTITY % XHTML.xmlns.decl.attrib "" > + +<![%MATHML.module;[ +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.xmlns.decl.attrib + "xmlns:%MATHML.prefix; %URI.datatype; #FIXED '%MATHML.xmlns;'" +> +]]> +<!ENTITY % MATHML.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%MATHML.xmlns;'" +> +]]> +<!ENTITY % MATHML.xmlns.decl.attrib "" > + +<!-- Declare common case for %NS.decl.attrib;. +--> +<!ENTITY % NS.common.decl.attrib + "%SVG.xmlns.decl.attrib; + %XHTML.xmlns.decl.attrib; + %MATHML.xmlns.decl.attrib; + %XLINK.xmlns.attrib; + %MATHML.pref.xmlns.attrib; + %SVG.xmlns.extra.attrib; + %XHTML.xmlns.extra.attrib;" +> + +<!-- Redeclare the parameter entity %NS.decl.attrib; containing + all XML Namespace declarations used in the DTD, its form + dependent on whether prefixing is active. +--> +<![%SVG.prefixed;[ +<![%XHTML.prefixed;[ +<!-- SVG and XHTML are prefixed, MathML is either prefixed or not prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<![%MATHML.prefixed;[ +<!-- SVG and MathML are prefixed, XHTML is not prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<!-- SVG is prefixed, XHTML and MathML are not prefixed. + MathML namespace must always be specified on the math element. +--> +<!ENTITY % NS.decl.attrib + "%SVG.xmlns.decl.attrib; + %XHTML.xmlns.decl.attrib; + %XLINK.xmlns.attrib; + %MATHML.pref.xmlns.attrib; + %SVG.xmlns.extra.attrib; + %XHTML.xmlns.extra.attrib;" +> +]]> +<![%XHTML.prefixed;[ +<![%MATHML.prefixed;[ +<!-- SVG is not prefixed, XHTML and MathML are prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<!-- SVG and MathML are not prefixed, which is not allowed. +--> +<!ENTITY % NS.decl.attrib "" > +]]> +<!-- SVG, MathML and XHTML are all not prefixed, which is not allowed. +--> +<!ENTITY % NS.decl.attrib "" > + +<!-- Redeclare parameter entities %SVG.xmlns.attrib; and + %XHTMLxmlns.attrib; containing all XML namespace declarations + used by XHTML+MathML+SVG, including a default xmlns declaration + when prefixing is inactive. +--> +<![%SVG.module;[ +<!ENTITY % SVG.xmlns.attrib + "%NS.decl.attrib;" +> +]]> + +<![%XHTML.module;[ +<!ENTITY % XHTML.xmlns.attrib + "%NS.decl.attrib;" +> +]]> + +<!-- Redeclare the parameter entity %MATHML.xmlns.attrib; containing + XLink namespace declaration allowed on MathML elements. + Unfortunately XLink prefix is hard-coded in the MathML 2.0 DTD, + so it cannot be changed. +--> +<![%MATHML.module;[ +<!ENTITY % MATHML.xmlns.extra.attrib + "xmlns:xlink %URI.datatype; #FIXED '%XLINK.xmlns;' + %MATHML.pref.xmlns.attrib;" +> +]]> + +<!-- Framework Redeclaration placeholders ....................... --> + +<![%XHTML.module;[ +<!ENTITY % XHTML.redecl.module "INCLUDE" > +<![%XHTML.redecl.module;[ +<!-- Pre-Framework Redeclaration placeholder .................... --> +<!ENTITY % xhtml-prefw-redecl.mod "" > + +<!-- Post-Framework Redeclaration placeholder ................... --> +<!ENTITY % xhtml-postfw-redecl.mod "" > +]]> +]]> + +<![%SVG.module;[ +<!ENTITY % SVG.redecl.module "INCLUDE" > +<![%SVG.redecl.module;[ +<!-- Pre-Framework Redeclaration placeholder ..................... --> +<!ENTITY % svg-prefw-redecl.mod "" > + +<!-- Post-Framework Redeclaration placeholder .................... --> +<!ENTITY % svg-postfw-redecl.mod "" > +]]> +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Declare MathML Qualified Names module as an extension of + XHTML's Qualified Names module. +--> +<![%MATHML.module;[ +<!ENTITY % xhtml-qname-extra.decl + 'PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN" + "%MATHML.qname.sysid;"' +> +<!ENTITY % xhtml-qname-extra.mod + %xhtml-qname-extra.decl; +> +]]> + +<!-- Declare location of math and svg contents in XHTML. +--> + +<![%MATHML.module;[ +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.pfx "%MATHML.prefix;:" > +]]> +<!ENTITY % MATHML.pfx "" > +<!ENTITY % math.qname "%MATHML.pfx;math" > +<!ENTITY % MATHML.math.class "| %math.qname;" > +]]> +<!ENTITY % MATHML.math.class "" > + +<![%SVG.module;[ +<![%SVG.prefixed;[ +<!ENTITY % SVG.pfx "%SVG.prefix;:" > +]]> +<!ENTITY % SVG.pfx "" > +<!ENTITY % SVG.svg.qname "%SVG.pfx;svg" > +<!ENTITY % SVG.svg.class "| %SVG.svg.qname;" > +]]> +<!ENTITY % SVG.svg.class "" > + +<![%XHTML.module;[ +<!ENTITY % Misc.extra + "%MATHML.math.class; %SVG.svg.class;" > +]]> + +<!-- Redeclare SVG's foreignObject content (allow anything). +--> +<![%SVG.module;[ +<!ENTITY % SVG.foreignObject.content "ANY" > +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Instantiate SVG 1.1 DTD .................................... --> +<![%SVG.module;[ +<!ENTITY % SVG.dtd.decl + 'PUBLIC "-//W3C//DTD SVG 1.1//EN" + "%SVG.dtd.sysid;"' +> +<!ENTITY % SVG.dtd %SVG.dtd.decl; > +%SVG.dtd; +]]> + +<!-- Instantiate XHTML 1.1 DTD .................................. --> +<![%XHTML.module;[ +<!ENTITY % XHTML.dtd.decl + 'PUBLIC "-//W3C//DTD XHTML 1.1//EN" + "%XHTML.dtd.sysid;"' +> +<!ENTITY % XHTML.dtd %XHTML.dtd.decl; > +%XHTML.dtd; +]]> + +<!-- instantiate MathML 2.0 DTD ................................. --> +<![%MATHML.module;[ +<!ENTITY % MATHML.dtd.decl + 'PUBLIC "-//W3C//DTD MathML 2.0//EN" + "%MATHML.dtd.sysid;"' +> +<!ENTITY % MATHML.dtd %MATHML.dtd.decl; > +%MATHML.dtd; +]]> + +<!-- end of xhtml-math-svg.dtd --> diff --git a/htdocs/sgml-lib/xhtml-math-svg-20020809.dtd b/htdocs/sgml-lib/xhtml-math-svg-20020809.dtd new file mode 100644 index 0000000..4256fe8 --- /dev/null +++ b/htdocs/sgml-lib/xhtml-math-svg-20020809.dtd @@ -0,0 +1,412 @@ +<!-- ....................................................................... --> +<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD ........................... --> +<!-- URI: http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd +--> + +<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD + + This is a prototype extension of XHTML 1.1 incorporating MathML 2.0 + and SVG 1.1. + + Copyright 2002 World Wide Web Consortium + (Massachusetts Institute of Technology, Institut National de + Recherche en Informatique et en Automatique, Keio University). + All Rights Reserved. + + Permission to use, copy, modify and distribute this DTD and its + accompanying documentation for any purpose and without fee is hereby + granted in perpetuity, provided that the above copyright notice and + this paragraph appear in all copies. The copyright holders make no + representation about the suitability of the DTD for any purpose. + + It is provided "as is" without expressed or implied warranty. + + Editors: Murray M. Altheim <altheim@eng.sun.com> (XHTML modules) + David Carlisle <davidc@nag.co.uk> (MathML modules) + Jun Fujisawa <fujisawa.jun@canon.co.jp> (SVG modules) + Masayasu Ishikawa <mimasa@w3.org> (DTD driver) + Revision: + $Id: xhtml-math-svg-20020809.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + +--> +<!-- This is the driver for an XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD. +--> + +<!-- Switches to include/ignore each vocabulary. +--> +<!ENTITY % XHTML.module "INCLUDE" > +<!ENTITY % MATHML.module "INCLUDE" > +<!ENTITY % SVG.module "INCLUDE" > + +<![%XHTML.module;[ +<!ENTITY % XHTML.version + "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" > +]]> + +<!-- Switches to enable subsets. +--> +<!ENTITY % XHTML.Basic.module "IGNORE" > +<!ENTITY % SVG.Basic.module "IGNORE" > +<!ENTITY % SVG.Tiny.module "IGNORE" > + +<!-- Use the following entities to identify the namespaces: +--> +<!ENTITY % XHTML.xmlns "http://www.w3.org/1999/xhtml" > +<!ENTITY % MATHML.xmlns "http://www.w3.org/1998/Math/MathML" > +<!ENTITY % MATHML.pref.xmlns "http://www.w3.org/2002/Math/preference" > +<!ENTITY % SVG.xmlns "http://www.w3.org/2000/svg" > +<!ENTITY % XLINK.xmlns "http://www.w3.org/1999/xlink" > + +<!-- Declare base URIs for the relevant DTD modules. +--> +<![%XHTML.module;[ +<!ENTITY % XHTML.sysid.base + "http://www.w3.org/TR/xhtml-modularization/DTD/" > +]]> +<![%MATHML.module;[ +<!ENTITY % MATHML.sysid.base + "http://www.w3.org/Math/DTD/mathml2/" > +]]> +<![%SVG.module;[ +<!ENTITY % SVG.sysid.base + "http://www.w3.org/Graphics/SVG/1.1/DTD/" > +]]> + +<!-- Declare system identifiers for the relevant DTD modules. +--> +<![%XHTML.module;[ +<![%XHTML.Basic.module;[ +<!ENTITY % XHTML.dtd.fpi + "-//W3C//DTD XHTML Basic 1.0//EN" > +<!ENTITY % XHTML.dtd.sysid + "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd" > +]]> +<!ENTITY % XHTML.dtd.fpi + "-//W3C//DTD XHTML 1.1//EN" > +<!ENTITY % XHTML.dtd.sysid + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" > +]]> +<![%MATHML.module;[ +<!ENTITY % MATHML.dtd.sysid + "%MATHML.sysid.base;mathml2.dtd" > +<!ENTITY % MATHML.qname.sysid + "%MATHML.sysid.base;mathml2-qname-1.mod" > +]]> +<![%SVG.module;[ +<![%SVG.Tiny.module;[ +<!ENTITY % SVG.dtd.fpi + "-//W3C//DTD SVG 1.1 Tiny//EN" > +<!ENTITY % SVG.dtd.sysid + "%SVG.sysid.base;svg11-tiny.dtd" > +]]> +<![%SVG.Basic.module;[ +<!ENTITY % SVG.dtd.fpi + "-//W3C//DTD SVG 1.1 Basic//EN" > +<!ENTITY % SVG.dtd.sysid + "%SVG.sysid.base;svg11-basic.dtd" > +]]> +<!ENTITY % SVG.dtd.fpi + "-//W3C//DTD SVG 1.1//EN" > +<!ENTITY % SVG.dtd.sysid + "%SVG.sysid.base;svg11.dtd" > +]]> + +<!-- See the XHTML / MathML / SVG Qualified Names modules for information + on the use of namespace prefixes in the DTD. Default values are + as follows: + + <!ENTITY % NS.prefixed "IGNORE" > + <!ENTITY % XHTML.prefixed "%NS.prefixed;" > + <!ENTITY % XHTML.prefix "" > + <!ENTITY % MATHML.prefixed "%NS.prefixed;" > + <!ENTITY % MATHML.prefix "m" > + <!ENTITY % MATHML.pref.prefixed "IGNORE" > + <!ENTITY % MATHML.pref.prefix "pref" > + <!ENTITY % SVG.prefixed "%NS.prefixed;" > + <!ENTITY % SVG.prefix "" > + <!ENTITY % XLINK.prefix "xlink" > + + In this DTD driver, XHTML and MathML are not prefixed, and SVG is + prefixed by default. It can be changed by redeclaring the above + parameter entities. +--> +<!ENTITY % XHTML.prefixed "IGNORE" > +<!ENTITY % MATHML.prefixed "IGNORE" > +<!ENTITY % MATHML.prefix "m" > +<!ENTITY % MATHML.pref.prefixed "IGNORE" > +<!ENTITY % MATHML.pref.prefix "pref" > +<!ENTITY % SVG.prefixed "INCLUDE" > +<!ENTITY % SVG.prefix "svg" > +<!ENTITY % XLINK.prefix "xlink" > + +<!-- a URI reference, see [URI] --> +<!ENTITY % URI.datatype "CDATA" > + +<!-- Declare a parameter entity %XLINK.xmlns.attrib; containing + the XML Namespace declarations for XLink. +--> +<!ENTITY % XLINK.xmlns.attrib + "xmlns:%XLINK.prefix; %URI.datatype; #FIXED '%XLINK.xmlns;'" +> + +<!-- Allow universal MathML stylesheet-related declarations. + When it is used, it must always be prefixed. +--> +<![%MATHML.module;[ +<![%MATHML.pref.prefixed;[ +<!ENTITY % MATHML.pref.renderer.extra ""> +<!ENTITY % MATHML.pref.renderer + "css | mathplayer-dl | mathplayer | techexplorer-plugin | techexplorer"> +<!ENTITY % MATHML.pref.xmlns.attrib + "xmlns:%MATHML.pref.prefix; %URI.datatype; #FIXED '%MATHML.pref.xmlns;' + %MATHML.pref.prefix;:renderer + ( %MATHML.pref.renderer; %MATHML.pref.renderer.extra; ) #IMPLIED" +> +]]> +]]> +<!ENTITY % MATHML.pref.xmlns.attrib "" > + +<!-- The parameter entities %SVG.xmlns.extra.attrib; and + %XHTML.xmlns.extra.attrib; may be redeclared to contain + any foreign namespace declarations for namespaces embedded + in XHTML+MathML+SVG. The default value is an empty string. +--> +<!ENTITY % SVG.xmlns.extra.attrib "" > +<!ENTITY % XHTML.xmlns.extra.attrib "" > + +<!-- Declare parameter entities to define XML Namespace declarations + for SVG, XHTML and MathML. +--> +<![%SVG.module;[ +<![%SVG.prefixed;[ +<!ENTITY % SVG.xmlns.decl.attrib + "xmlns:%SVG.prefix; %URI.datatype; #FIXED '%SVG.xmlns;'" +> +]]> +<!ENTITY % SVG.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%SVG.xmlns;'" +> +]]> +<!ENTITY % SVG.xmlns.decl.attrib "" > + +<![%XHTML.module;[ +<![%XHTML.prefixed;[ +<!ENTITY % XHTML.xmlns.decl.attrib + "xmlns:%XHTML.prefix; %URI.datatype; #FIXED '%XHTML.xmlns;'" +> +]]> +<!ENTITY % XHTML.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%XHTML.xmlns;'" +> +]]> +<!ENTITY % XHTML.xmlns.decl.attrib "" > + +<![%MATHML.module;[ +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.xmlns.decl.attrib + "xmlns:%MATHML.prefix; %URI.datatype; #FIXED '%MATHML.xmlns;'" +> +]]> +<!ENTITY % MATHML.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%MATHML.xmlns;'" +> +]]> +<!ENTITY % MATHML.xmlns.decl.attrib "" > + +<!-- Declare common case for %NS.decl.attrib;. +--> +<!ENTITY % NS.common.decl.attrib + "%SVG.xmlns.decl.attrib; + %XHTML.xmlns.decl.attrib; + %MATHML.xmlns.decl.attrib; + %XLINK.xmlns.attrib; + %MATHML.pref.xmlns.attrib; + %SVG.xmlns.extra.attrib; + %XHTML.xmlns.extra.attrib;" +> + +<!-- Redeclare the parameter entity %NS.decl.attrib; containing + all XML Namespace declarations used in the DTD, its form + dependent on whether prefixing is active. +--> +<![%SVG.prefixed;[ +<![%XHTML.prefixed;[ +<!-- SVG and XHTML are prefixed, MathML is either prefixed or not prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<![%MATHML.prefixed;[ +<!-- SVG and MathML are prefixed, XHTML is not prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<!-- SVG is prefixed, XHTML and MathML are not prefixed. + MathML namespace must always be specified on the math element. +--> +<!ENTITY % NS.decl.attrib + "%SVG.xmlns.decl.attrib; + %XHTML.xmlns.decl.attrib; + %XLINK.xmlns.attrib; + %MATHML.pref.xmlns.attrib; + %SVG.xmlns.extra.attrib; + %XHTML.xmlns.extra.attrib;" +> +]]> +<![%XHTML.prefixed;[ +<![%MATHML.prefixed;[ +<!-- SVG is not prefixed, XHTML and MathML are prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<!-- SVG and MathML are not prefixed, which is not allowed. +--> +<!ENTITY % NS.decl.attrib "" > +]]> +<!-- SVG, MathML and XHTML are all not prefixed, which is not allowed. +--> +<!ENTITY % NS.decl.attrib "" > + +<!-- Redeclare parameter entities %SVG.xmlns.attrib; and + %XHTML.xmlns.attrib; containing all XML namespace declarations + used by XHTML+MathML+SVG, including a default xmlns declaration + when prefixing is inactive. +--> +<![%SVG.module;[ +<!ENTITY % SVG.xmlns.attrib + "%NS.decl.attrib;" +> +]]> + +<![%XHTML.module;[ +<!ENTITY % XHTML.xmlns.attrib + "%NS.decl.attrib;" +> +]]> + +<!-- Redeclare the parameter entity %MATHML.xmlns.extra.attrib; + containing XLink and MathML preferences namespace declarations + allowed on MathML elements. +--> +<![%MATHML.module;[ +<!ENTITY % MATHML.xmlns.extra.attrib + "%XLINK.xmlns.attrib; + %MATHML.pref.xmlns.attrib;" +> +]]> + +<!-- Framework Redeclaration placeholders ....................... --> + +<![%XHTML.module;[ +<!ENTITY % XHTML.redecl.module "INCLUDE" > +<![%XHTML.redecl.module;[ +<!-- Pre-Framework Redeclaration placeholder .................... --> +<!ENTITY % xhtml-prefw-redecl.mod "" > + +<!-- Post-Framework Redeclaration placeholder ................... --> +<!ENTITY % xhtml-postfw-redecl.mod "" > +]]> +]]> + +<![%SVG.module;[ +<!ENTITY % SVG.redecl.module "INCLUDE" > +<![%SVG.redecl.module;[ +<!-- Pre-Framework Redeclaration placeholder ..................... --> +<!ENTITY % svg-prefw-redecl.mod "" > + +<!-- Post-Framework Redeclaration placeholder .................... --> +<!ENTITY % svg-postfw-redecl.mod "" > +]]> +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Declare MathML Qualified Names module as an extension of + XHTML's Qualified Names module. +--> +<![%MATHML.module;[ +<!ENTITY % xhtml-qname-extra.decl + 'PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN" + "%MATHML.qname.sysid;"' +> +<!ENTITY % xhtml-qname-extra.mod + %xhtml-qname-extra.decl; +> +]]> + +<!-- Declare location of math and svg contents in XHTML. +--> + +<![%MATHML.module;[ +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.pfx "%MATHML.prefix;:" > +]]> +<!ENTITY % MATHML.pfx "" > +<!ENTITY % math.qname "%MATHML.pfx;math" > +<!ENTITY % MATHML.math.class "| %math.qname;" > +]]> +<!ENTITY % MATHML.math.class "" > + +<![%SVG.module;[ +<![%SVG.prefixed;[ +<!ENTITY % SVG.pfx "%SVG.prefix;:" > +]]> +<!ENTITY % SVG.pfx "" > +<!ENTITY % SVG.svg.qname "%SVG.pfx;svg" > +<!ENTITY % SVG.svg.class "| %SVG.svg.qname;" > +]]> +<!ENTITY % SVG.svg.class "" > + +<![%XHTML.module;[ +<![%XHTML.Basic.module;[ +<!ENTITY % Misc.class + "%MATHML.math.class; %SVG.svg.class;" > +]]> +<!ENTITY % Misc.extra + "%MATHML.math.class; %SVG.svg.class;" > +]]> + +<!-- Redeclare SVG's foreignObject content (allow anything). +--> +<![%SVG.module;[ +<!ENTITY % SVG.foreignObject.content "ANY" > +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Instantiate SVG DTD ........................................ --> +<![%SVG.module;[ +<!ENTITY % SVG.dtd.decl + 'PUBLIC "%SVG.dtd.fpi;" + "%SVG.dtd.sysid;"' +> +<!ENTITY % SVG.dtd %SVG.dtd.decl; > +%SVG.dtd; +]]> + +<!-- Instantiate XHTML DTD ...................................... --> +<![%XHTML.module;[ +<!ENTITY % XHTML.dtd.decl + 'PUBLIC "%XHTML.dtd.fpi;" + "%XHTML.dtd.sysid;"' +> +<!ENTITY % XHTML.dtd %XHTML.dtd.decl; > +%XHTML.dtd; +]]> + +<!-- instantiate MathML 2.0 DTD ................................. --> +<![%MATHML.module;[ +<!ENTITY % MATHML.dtd.decl + 'PUBLIC "-//W3C//DTD MathML 2.0//EN" + "%MATHML.dtd.sysid;"' +> +<!ENTITY % MATHML.dtd %MATHML.dtd.decl; > +%MATHML.dtd; +]]> + +<!-- end of xhtml-math-svg.dtd --> diff --git a/htdocs/sgml-lib/xhtml-math-svg-flat-20020430.dtd b/htdocs/sgml-lib/xhtml-math-svg-flat-20020430.dtd new file mode 100644 index 0000000..36e1988 --- /dev/null +++ b/htdocs/sgml-lib/xhtml-math-svg-flat-20020430.dtd @@ -0,0 +1,15454 @@ +<!-- ....................................................................... --> +<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD ........................... --> +<!-- URI: http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd +--> + +<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD + + This is a prototype extension of XHTML 1.1 incorporating MathML 2.0 + and SVG 1.1. + + Copyright 2002 World Wide Web Consortium + (Massachusetts Institute of Technology, Institut National de + Recherche en Informatique et en Automatique, Keio University). + All Rights Reserved. + + Permission to use, copy, modify and distribute this DTD and its + accompanying documentation for any purpose and without fee is hereby + granted in perpetuity, provided that the above copyright notice and + this paragraph appear in all copies. The copyright holders make no + representation about the suitability of the DTD for any purpose. + + It is provided "as is" without expressed or implied warranty. + + Editors: Murray M. Altheim <altheim@eng.sun.com> (XHTML modules) + David Carlisle <davidc@nag.co.uk> (MathML modules) + Jun Fujisawa <fujisawa.jun@canon.co.jp> (SVG modules) + Masayasu Ishikawa <mimasa@w3.org> (DTD driver) + Revision: + $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + +--> +<!-- This is the driver for an XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD. +--> + +<!-- Switches to include/ignore each vocabulary. +--> +<!ENTITY % XHTML.module "INCLUDE" > +<!ENTITY % MATHML.module "INCLUDE" > +<!ENTITY % SVG.module "INCLUDE" > + +<![%XHTML.module;[ +<!ENTITY % XHTML.version + "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" > +]]> + +<!-- Use the following entities to identify the namespaces: +--> +<!ENTITY % XHTML.xmlns "http://www.w3.org/1999/xhtml" > +<!ENTITY % MATHML.xmlns "http://www.w3.org/1998/Math/MathML" > +<!ENTITY % MATHML.pref.xmlns "http://www.w3.org/2002/Math/preference" > +<!ENTITY % SVG.xmlns "http://www.w3.org/2000/svg" > +<!ENTITY % XLINK.xmlns "http://www.w3.org/1999/xlink" > + +<!-- Declare base URIs for the relevant DTD modules. +--> +<![%XHTML.module;[ +<!ENTITY % XHTML.sysid.base + "http://www.w3.org/TR/xhtml-modularization/DTD/" > +]]> +<![%MATHML.module;[ +<!ENTITY % MATHML.sysid.base + "http://www.w3.org/TR/MathML2/dtd/" > +]]> +<![%SVG.module;[ +<!ENTITY % SVG.sysid.base + "http://www.w3.org/Graphics/SVG/1.1/DTD/" > +]]> + +<!-- Declare system identifiers for the relevant DTD modules. +--> +<![%XHTML.module;[ +<!ENTITY % XHTML.dtd.sysid + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" > +]]> +<![%MATHML.module;[ +<!ENTITY % MATHML.dtd.sysid + "%MATHML.sysid.base;mathml2.dtd" > +<!ENTITY % MATHML.qname.sysid + "%MATHML.sysid.base;mathml2-qname-1.mod" > +]]> +<![%SVG.module;[ +<!ENTITY % SVG.dtd.sysid + "%SVG.sysid.base;svg11.dtd" > +]]> + +<!-- See the XHTML / MathML / SVG Qualified Names modules for information + on the use of namespace prefixes in the DTD. Default values are + as follows: + + <!ENTITY % NS.prefixed "IGNORE" > + <!ENTITY % XHTML.prefixed "%NS.prefixed;" > + <!ENTITY % XHTML.prefix "" > + <!ENTITY % MATHML.prefixed "%NS.prefixed;" > + <!ENTITY % MATHML.prefix "m" > + <!ENTITY % MATHML.pref.prefixed "IGNORE" > + <!ENTITY % MATHML.pref.prefix "pref" > + <!ENTITY % SVG.prefixed "%NS.prefixed;" > + <!ENTITY % SVG.prefix "" > + <!ENTITY % XLINK.prefix "xlink" > + + In this DTD driver, XHTML and MathML are not prefixed, and SVG is + prefixed by default. It can be changed by redeclaring the above + parameter entities. +--> +<!ENTITY % XHTML.prefixed "IGNORE" > +<!ENTITY % MATHML.prefixed "IGNORE" > +<!ENTITY % MATHML.prefix "m" > +<!ENTITY % MATHML.pref.prefixed "IGNORE" > +<!ENTITY % MATHML.pref.prefix "pref" > +<!ENTITY % SVG.prefixed "INCLUDE" > +<!ENTITY % SVG.prefix "svg" > +<!ENTITY % XLINK.prefix "xlink" > + +<!-- a URI reference, see [URI] --> +<!ENTITY % URI.datatype "CDATA" > + +<!-- Declare a parameter entity %XLINK.xmlns.attrib; containing + the XML Namespace declarations for XLink. +--> +<!ENTITY % XLINK.xmlns.attrib + "xmlns:%XLINK.prefix; %URI.datatype; #FIXED '%XLINK.xmlns;'" +> + +<!-- Allow universal MathML stylesheet-related declarations. + When it is used, it must always be prefixed. +--> +<![%MATHML.module;[ +<![%MATHML.pref.prefixed;[ +<!ENTITY % MATHML.pref.renderer.extra ""> +<!ENTITY % MATHML.pref.renderer + "css | mathplayer-dl | mathplayer | techexplorer-plugin | techexplorer"> +<!ENTITY % MATHML.pref.xmlns.attrib + "xmlns:%MATHML.pref.prefix; %URI.datatype; #FIXED '%MATHML.pref.xmlns;' + %MATHML.pref.prefix;:renderer + ( %MATHML.pref.renderer; %MATHML.pref.renderer.extra; ) #IMPLIED" +> +]]> +]]> +<!ENTITY % MATHML.pref.xmlns.attrib "" > + +<!-- The parameter entities %SVG.xmlns.extra.attrib; and + %XHTML.xmlns.extra.attrib; may be redeclared to contain + any foreign namespace declarations for namespaces embedded + in XHTML+MathML+SVG. The default value is an empty string. +--> +<!ENTITY % SVG.xmlns.extra.attrib "" > +<!ENTITY % XHTML.xmlns.extra.attrib "" > + +<!-- Declare parameter entities to define XML Namespace declarations + for SVG, XHTML and MathML. +--> +<![%SVG.module;[ +<![%SVG.prefixed;[ +<!ENTITY % SVG.xmlns.decl.attrib + "xmlns:%SVG.prefix; %URI.datatype; #FIXED '%SVG.xmlns;'" +> +]]> +<!ENTITY % SVG.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%SVG.xmlns;'" +> +]]> +<!ENTITY % SVG.xmlns.decl.attrib "" > + +<![%XHTML.module;[ +<![%XHTML.prefixed;[ +<!ENTITY % XHTML.xmlns.decl.attrib + "xmlns:%XHTML.prefix; %URI.datatype; #FIXED '%XHTML.xmlns;'" +> +]]> +<!ENTITY % XHTML.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%XHTML.xmlns;'" +> +]]> +<!ENTITY % XHTML.xmlns.decl.attrib "" > + +<![%MATHML.module;[ +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.xmlns.decl.attrib + "xmlns:%MATHML.prefix; %URI.datatype; #FIXED '%MATHML.xmlns;'" +> +]]> +<!ENTITY % MATHML.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%MATHML.xmlns;'" +> +]]> +<!ENTITY % MATHML.xmlns.decl.attrib "" > + +<!-- Declare common case for %NS.decl.attrib;. +--> +<!ENTITY % NS.common.decl.attrib + "%SVG.xmlns.decl.attrib; + %XHTML.xmlns.decl.attrib; + %MATHML.xmlns.decl.attrib; + %XLINK.xmlns.attrib; + %MATHML.pref.xmlns.attrib; + %SVG.xmlns.extra.attrib; + %XHTML.xmlns.extra.attrib;" +> + +<!-- Redeclare the parameter entity %NS.decl.attrib; containing + all XML Namespace declarations used in the DTD, its form + dependent on whether prefixing is active. +--> +<![%SVG.prefixed;[ +<![%XHTML.prefixed;[ +<!-- SVG and XHTML are prefixed, MathML is either prefixed or not prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<![%MATHML.prefixed;[ +<!-- SVG and MathML are prefixed, XHTML is not prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<!-- SVG is prefixed, XHTML and MathML are not prefixed. + MathML namespace must always be specified on the math element. +--> +<!ENTITY % NS.decl.attrib + "%SVG.xmlns.decl.attrib; + %XHTML.xmlns.decl.attrib; + %XLINK.xmlns.attrib; + %MATHML.pref.xmlns.attrib; + %SVG.xmlns.extra.attrib; + %XHTML.xmlns.extra.attrib;" +> +]]> +<![%XHTML.prefixed;[ +<![%MATHML.prefixed;[ +<!-- SVG is not prefixed, XHTML and MathML are prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<!-- SVG and MathML are not prefixed, which is not allowed. +--> +<!ENTITY % NS.decl.attrib "" > +]]> +<!-- SVG, MathML and XHTML are all not prefixed, which is not allowed. +--> +<!ENTITY % NS.decl.attrib "" > + +<!-- Redeclare parameter entities %SVG.xmlns.attrib; and + %XHTMLxmlns.attrib; containing all XML namespace declarations + used by XHTML+MathML+SVG, including a default xmlns declaration + when prefixing is inactive. +--> +<![%SVG.module;[ +<!ENTITY % SVG.xmlns.attrib + "%NS.decl.attrib;" +> +]]> + +<![%XHTML.module;[ +<!ENTITY % XHTML.xmlns.attrib + "%NS.decl.attrib;" +> +]]> + +<!-- Redeclare the parameter entity %MATHML.xmlns.attrib; containing + XLink namespace declaration allowed on MathML elements. + Unfortunately XLink prefix is hard-coded in the MathML 2.0 DTD, + so it cannot be changed. +--> +<![%MATHML.module;[ +<!ENTITY % MATHML.xmlns.extra.attrib + "xmlns:xlink %URI.datatype; #FIXED '%XLINK.xmlns;' + %MATHML.pref.xmlns.attrib;" +> +]]> + +<!-- Framework Redeclaration placeholders ....................... --> + +<![%XHTML.module;[ +<!ENTITY % XHTML.redecl.module "INCLUDE" > +<![%XHTML.redecl.module;[ +<!-- Pre-Framework Redeclaration placeholder .................... --> +<!ENTITY % xhtml-prefw-redecl.mod "" > + +<!-- Post-Framework Redeclaration placeholder ................... --> +<!ENTITY % xhtml-postfw-redecl.mod "" > +]]> +]]> + +<![%SVG.module;[ +<!ENTITY % SVG.redecl.module "INCLUDE" > +<![%SVG.redecl.module;[ +<!-- Pre-Framework Redeclaration placeholder ..................... --> +<!ENTITY % svg-prefw-redecl.mod "" > + +<!-- Post-Framework Redeclaration placeholder .................... --> +<!ENTITY % svg-postfw-redecl.mod "" > +]]> +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Declare MathML Qualified Names module as an extension of + XHTML's Qualified Names module. +--> +<![%MATHML.module;[ +<!ENTITY % xhtml-qname-extra.decl + 'PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN" + "%MATHML.qname.sysid;"' +> +<!ENTITY % xhtml-qname-extra.mod + %xhtml-qname-extra.decl; +> +]]> + +<!-- Declare location of math and svg contents in XHTML. +--> + +<![%MATHML.module;[ +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.pfx "%MATHML.prefix;:" > +]]> +<!ENTITY % MATHML.pfx "" > +<!ENTITY % math.qname "%MATHML.pfx;math" > +<!ENTITY % MATHML.math.class "| %math.qname;" > +]]> +<!ENTITY % MATHML.math.class "" > + +<![%SVG.module;[ +<![%SVG.prefixed;[ +<!ENTITY % SVG.pfx "%SVG.prefix;:" > +]]> +<!ENTITY % SVG.pfx "" > +<!ENTITY % SVG.svg.qname "%SVG.pfx;svg" > +<!ENTITY % SVG.svg.class "| %SVG.svg.qname;" > +]]> +<!ENTITY % SVG.svg.class "" > + +<![%XHTML.module;[ +<!ENTITY % Misc.extra + "%MATHML.math.class; %SVG.svg.class;" > +]]> + +<!-- Redeclare SVG's foreignObject content (allow anything). +--> +<![%SVG.module;[ +<!ENTITY % SVG.foreignObject.content "ANY" > +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Instantiate SVG 1.1 DTD .................................... --> +<![%SVG.module;[ +<!ENTITY % SVG.dtd.decl + 'PUBLIC "-//W3C//DTD SVG 1.1//EN" + "%SVG.dtd.sysid;"' +> +<!ENTITY % SVG.dtd %SVG.dtd.decl; > +<!-- ....................................................................... --> +<!-- SVG 1.1 DTD ........................................................... --> +<!-- file: svg11.dtd +--> + +<!-- SVG 1.1 DTD + + This is SVG, a language for describing two-dimensional graphics in XML. + + The Scalable Vector Graphics (SVG) + Copyright 2001, 2002 World Wide Web Consortium + (Massachusetts Institute of Technology, Institut National de + Recherche en Informatique et en Automatique, Keio University). + All Rights Reserved. + + Permission to use, copy, modify and distribute the SVG DTD and its + accompanying documentation for any purpose and without fee is hereby + granted in perpetuity, provided that the above copyright notice and + this paragraph appear in all copies. The copyright holders make no + representation about the suitability of the DTD for any purpose. + + It is provided "as is" without expressed or implied warranty. + + Author: Jun Fujisawa <fujisawa.jun@canon.co.jp> + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + +--> +<!-- This is the driver file for version 1.1 of the SVG DTD. + + This DTD is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD SVG 1.1//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" +--> +<!ENTITY % SVG.version "-//W3C//DTD SVG 1.1//EN" > + +<!-- Use this URI to identify the default namespace: + + "http://www.w3.org/2000/svg" + + See the Qualified Names module for information + on the use of namespace prefixes in the DTD. +--> +<!ENTITY % NS.prefixed "IGNORE" > +<!ENTITY % SVG.prefix "" > + +<!-- reserved for future use with document profiles --> +<!ENTITY % SVG.profile "" > + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Pre-Framework Redeclaration Placeholder ..................... --> +<!ENTITY % svg-prefw-redecl.module "IGNORE" > +<![%svg-prefw-redecl.module;[ +%svg-prefw-redecl.mod;]]> + +<!-- Document Model Module ....................................... --> +<!ENTITY % svg-model.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Model//EN" + "svg11-model.mod" > + +<!-- Attribute Collection Module ................................. --> +<!ENTITY % svg-attribs.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Attribute Collection//EN" + "svg11-attribs.mod" > + +<!-- Modular Framework Module .................................... --> +<!ENTITY % svg-framework.module "INCLUDE" > +<![%svg-framework.module;[ +<!ENTITY % svg-framework.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Modular Framework//EN" + "svg-framework.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Modular Framework Module ...................................... --> +<!-- file: svg-framework.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Modular Framework//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-framework.mod" + + ....................................................................... --> + +<!-- Modular Framework + + This module instantiates the modules needed o support the SVG + modularization model, including: + + + Datatypes + + Qualified Name + + Document Model + + Attribute Collection +--> + +<!ENTITY % svg-datatypes.module "INCLUDE" > +<![%svg-datatypes.module;[ +<!ENTITY % svg-datatypes.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Datatypes//EN" + "svg-datatypes.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Datatypes Module .............................................. --> +<!-- file: svg-datatypes.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Datatypes//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-datatypes.mod" + + ....................................................................... --> + +<!-- Datatypes + + This module declares common data types for properties and attributes. +--> + +<!-- feature specification --> +<!ENTITY % Boolean.datatype "( false | true )" > + +<!-- 'clip-rule' or 'fill-rule' property/attribute value --> +<!ENTITY % ClipFillRule.datatype "( nonzero | evenodd | inherit )" > + +<!-- media type, as per [RFC2045] --> +<!ENTITY % ContentType.datatype "CDATA" > + +<!-- a <coordinate> --> +<!ENTITY % Coordinate.datatype "CDATA" > + +<!-- a list of <coordinate>s --> +<!ENTITY % Coordinates.datatype "CDATA" > + +<!-- a <color> value --> +<!ENTITY % Color.datatype "CDATA" > + +<!-- a <integer> --> +<!ENTITY % Integer.datatype "CDATA" > + +<!-- a language code, as per [RFC3066] --> +<!ENTITY % LanguageCode.datatype "NMTOKEN" > + +<!-- comma-separated list of language codes, as per [RFC3066] --> +<!ENTITY % LanguageCodes.datatype "CDATA" > + +<!-- a <length> --> +<!ENTITY % Length.datatype "CDATA" > + +<!-- a list of <length>s --> +<!ENTITY % Lengths.datatype "CDATA" > + +<!-- a <number> --> +<!ENTITY % Number.datatype "CDATA" > + +<!-- a list of <number>s --> +<!ENTITY % Numbers.datatype "CDATA" > + +<!-- opacity value (e.g., <number>) --> +<!ENTITY % OpacityValue.datatype "CDATA" > + +<!-- a path data specification --> +<!ENTITY % PathData.datatype "CDATA" > + +<!-- 'preserveAspectRatio' attribute specification --> +<!ENTITY % PreserveAspectRatioSpec.datatype "CDATA" > + +<!-- script expression --> +<!ENTITY % Script.datatype "CDATA" > + +<!-- An SVG color value (RGB plus optional ICC) --> +<!ENTITY % SVGColor.datatype "CDATA" > + +<!-- arbitrary text string --> +<!ENTITY % Text.datatype "CDATA" > + +<!-- list of transforms --> +<!ENTITY % TransformList.datatype "CDATA" > + +<!-- a Uniform Resource Identifier, see [URI] --> +<!ENTITY % URI.datatype "CDATA" > + +<!-- 'viewBox' attribute specification --> +<!ENTITY % ViewBoxSpec.datatype "CDATA" > + +<!-- end of svg-datatypes.mod --> +]]> + +<!ENTITY % svg-qname.module "INCLUDE" > +<![%svg-qname.module;[ +<!ENTITY % svg-qname.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Qualified Name//EN" + "svg-qname.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Qualified Name Module ......................................... --> +<!-- file: svg-qname.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Qualified Name//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-qname.mod" + + ....................................................................... --> + +<!-- Qualified Name + + This module is contained in two parts, labeled Section 'A' and 'B': + + Section A declares parameter entities to support namespace- + qualified names, namespace declarations, and name prefixing + for SVG and extensions. + + Section B declares parameter entities used to provide + namespace-qualified names for all SVG element types: +--> + +<!-- Section A: SVG XML Namespace Framework :::::::::::::::::::::: --> + +<!-- 1. Declare a %SVG.prefixed; conditional section keyword, used + to activate namespace prefixing. The default value should + inherit '%NS.prefixed;' from the DTD driver, so that unless + overridden, the default behaviour follows the overall DTD + prefixing scheme. +--> +<!ENTITY % NS.prefixed "IGNORE" > +<!ENTITY % SVG.prefixed "%NS.prefixed;" > + +<!-- 2. Declare a parameter entity (eg., %SVG.xmlns;) containing + the URI reference used to identify the SVG namespace: +--> +<!ENTITY % SVG.xmlns "http://www.w3.org/2000/svg" > +<!ENTITY % XLINK.xmlns "http://www.w3.org/1999/xlink" > + +<!-- 3. Declare parameter entities (eg., %SVG.prefix;) containing + the default namespace prefix string(s) to use when prefixing + is enabled. This may be overridden in the DTD driver or the + internal subset of an document instance. If no default prefix + is desired, this may be declared as an empty string. +--> +<!ENTITY % SVG.prefix "" > +<!ENTITY % XLINK.prefix "xlink" > + +<!-- 4. Declare parameter entities (eg., %SVG.pfx;) containing the + colonized prefix(es) (eg., '%SVG.prefix;:') used when + prefixing is active, an empty string when it is not. +--> +<![%SVG.prefixed;[ +<!ENTITY % SVG.pfx "%SVG.prefix;:" > +]]> +<!ENTITY % SVG.pfx "" > +<!ENTITY % XLINK.pfx "%XLINK.prefix;:" > + +<!-- 5. The parameter entity %SVG.xmlns.extra.attrib; may be + redeclared to contain any non-SVG namespace declaration + attributes for namespaces embedded in SVG. The default + is an empty string. +--> +<!ENTITY % SVG.xmlns.extra.attrib "" > + +<!-- Declare a parameter entity XLINK.xmlns.attrib containing + the XML Namespace declarations for XLink. +--> +<!ENTITY % XLINK.xmlns.attrib + "xmlns:%XLINK.prefix; %URI.datatype; #FIXED '%XLINK.xmlns;'" +> + +<!-- Declare a parameter entity %NS.decl.attrib; containing + all XML Namespace declarations used in the DTD, plus the + xmlns declaration for SVG, its form dependent on whether + prefixing is active. +--> +<![%SVG.prefixed;[ +<!ENTITY % NS.decl.attrib + "xmlns:%SVG.prefix; %URI.datatype; #FIXED '%SVG.xmlns;' + %XLINK.xmlns.attrib; + %SVG.xmlns.extra.attrib;" +> +]]> +<!ENTITY % NS.decl.attrib + "%XLINK.xmlns.attrib; + %SVG.xmlns.extra.attrib;" +> + +<!-- Declare a parameter entity %SVG.xmlns.attrib; containing + all XML namespace declaration attributes used by SVG, + including a default xmlns attribute when prefixing is + inactive. +--> +<![%SVG.prefixed;[ +<!ENTITY % SVG.xmlns.attrib + "%NS.decl.attrib;" +> +]]> +<!ENTITY % SVG.xmlns.attrib + "xmlns %URI.datatype; #FIXED '%SVG.xmlns;' + %XLINK.xmlns.attrib;" +> + +<!-- Section B: SVG Qualified Names :::::::::::::::::::::::::::::: --> + +<!-- 6. This section declares parameter entities used to provide + namespace-qualified names for all SVG element types. +--> + +<!-- module: svg-structure.mod ......................... --> + +<!ENTITY % SVG.svg.qname "%SVG.pfx;svg" > +<!ENTITY % SVG.g.qname "%SVG.pfx;g" > +<!ENTITY % SVG.defs.qname "%SVG.pfx;defs" > +<!ENTITY % SVG.desc.qname "%SVG.pfx;desc" > +<!ENTITY % SVG.title.qname "%SVG.pfx;title" > +<!ENTITY % SVG.metadata.qname "%SVG.pfx;metadata" > +<!ENTITY % SVG.symbol.qname "%SVG.pfx;symbol" > +<!ENTITY % SVG.use.qname "%SVG.pfx;use" > + +<!-- module: svg-conditional.mod ....................... --> + +<!ENTITY % SVG.switch.qname "%SVG.pfx;switch" > + +<!-- module: svg-image.mod ............................. --> + +<!ENTITY % SVG.image.qname "%SVG.pfx;image" > + +<!-- module: svg-style.mod ............................. --> + +<!ENTITY % SVG.style.qname "%SVG.pfx;style" > + +<!-- module: svg-shape.mod ............................. --> + +<!ENTITY % SVG.path.qname "%SVG.pfx;path" > +<!ENTITY % SVG.rect.qname "%SVG.pfx;rect" > +<!ENTITY % SVG.circle.qname "%SVG.pfx;circle" > +<!ENTITY % SVG.line.qname "%SVG.pfx;line" > +<!ENTITY % SVG.ellipse.qname "%SVG.pfx;ellipse" > +<!ENTITY % SVG.polyline.qname "%SVG.pfx;polyline" > +<!ENTITY % SVG.polygon.qname "%SVG.pfx;polygon" > + +<!-- module: svg-text.mod .............................. --> + +<!ENTITY % SVG.text.qname "%SVG.pfx;text" > +<!ENTITY % SVG.tspan.qname "%SVG.pfx;tspan" > +<!ENTITY % SVG.tref.qname "%SVG.pfx;tref" > +<!ENTITY % SVG.textPath.qname "%SVG.pfx;textPath" > +<!ENTITY % SVG.altGlyph.qname "%SVG.pfx;altGlyph" > +<!ENTITY % SVG.altGlyphDef.qname "%SVG.pfx;altGlyphDef" > +<!ENTITY % SVG.altGlyphItem.qname "%SVG.pfx;altGlyphItem" > +<!ENTITY % SVG.glyphRef.qname "%SVG.pfx;glyphRef" > + +<!-- module: svg-marker.mod ............................ --> + +<!ENTITY % SVG.marker.qname "%SVG.pfx;marker" > + +<!-- module: svg-profile.mod ........................... --> + +<!ENTITY % SVG.color-profile.qname "%SVG.pfx;color-profile" > + +<!-- module: svg-gradient.mod .......................... --> + +<!ENTITY % SVG.linearGradient.qname "%SVG.pfx;linearGradient" > +<!ENTITY % SVG.radialGradient.qname "%SVG.pfx;radialGradient" > +<!ENTITY % SVG.stop.qname "stop" > + +<!-- module: svg-pattern.mod ........................... --> + +<!ENTITY % SVG.pattern.qname "%SVG.pfx;pattern" > + +<!-- module: svg-clip.mod .............................. --> + +<!ENTITY % SVG.clipPath.qname "%SVG.pfx;clipPath" > + +<!-- module: svg-mask.mod .............................. --> + +<!ENTITY % SVG.mask.qname "%SVG.pfx;mask" > + +<!-- module: svg-filter.mod ............................ --> + +<!ENTITY % SVG.filter.qname "%SVG.pfx;filter" > +<!ENTITY % SVG.feBlend.qname "%SVG.pfx;feBlend" > +<!ENTITY % SVG.feColorMatrix.qname "%SVG.pfx;feColorMatrix" > +<!ENTITY % SVG.feComponentTransfer.qname "%SVG.pfx;feComponentTransfer" > +<!ENTITY % SVG.feComposite.qname "%SVG.pfx;feComposite" > +<!ENTITY % SVG.feConvolveMatrix.qname "%SVG.pfx;feConvolveMatrix" > +<!ENTITY % SVG.feDiffuseLighting.qname "%SVG.pfx;feDiffuseLighting" > +<!ENTITY % SVG.feDisplacementMap.qname "%SVG.pfx;feDisplacementMap" > +<!ENTITY % SVG.feFlood.qname "%SVG.pfx;feFlood" > +<!ENTITY % SVG.feGaussianBlur.qname "%SVG.pfx;feGaussianBlur" > +<!ENTITY % SVG.feImage.qname "%SVG.pfx;feImage" > +<!ENTITY % SVG.feMerge.qname "%SVG.pfx;feMerge" > +<!ENTITY % SVG.feMergeNode.qname "%SVG.pfx;feMergeNode" > +<!ENTITY % SVG.feMorphology.qname "%SVG.pfx;feMorphology" > +<!ENTITY % SVG.feOffset.qname "%SVG.pfx;feOffset" > +<!ENTITY % SVG.feSpecularLighting.qname "%SVG.pfx;feSpecularLighting" > +<!ENTITY % SVG.feTile.qname "%SVG.pfx;feTile" > +<!ENTITY % SVG.feTurbulence.qname "%SVG.pfx;feTurbulence" > +<!ENTITY % SVG.feDistantLight.qname "%SVG.pfx;feDistantLight" > +<!ENTITY % SVG.fePointLight.qname "%SVG.pfx;fePointLight" > +<!ENTITY % SVG.feSpotLight.qname "%SVG.pfx;feSpotLight" > +<!ENTITY % SVG.feFuncR.qname "%SVG.pfx;feFuncR" > +<!ENTITY % SVG.feFuncG.qname "%SVG.pfx;feFuncG" > +<!ENTITY % SVG.feFuncB.qname "%SVG.pfx;feFuncB" > +<!ENTITY % SVG.feFuncA.qname "%SVG.pfx;feFuncA" > + +<!-- module: svg-cursor.mod ............................ --> + +<!ENTITY % SVG.cursor.qname "%SVG.pfx;cursor" > + +<!-- module: svg-hyperlink.mod ......................... --> + +<!ENTITY % SVG.a.qname "%SVG.pfx;a" > + +<!-- module: svg-view.mod .............................. --> + +<!ENTITY % SVG.view.qname "%SVG.pfx;view" > + +<!-- module: svg-script.mod ............................ --> + +<!ENTITY % SVG.script.qname "%SVG.pfx;script" > + +<!-- module: svg-animation.mod ......................... --> + +<!ENTITY % SVG.animate.qname "%SVG.pfx;animate" > +<!ENTITY % SVG.set.qname "%SVG.pfx;set" > +<!ENTITY % SVG.animateMotion.qname "%SVG.pfx;animateMotion" > +<!ENTITY % SVG.animateColor.qname "%SVG.pfx;animateColor" > +<!ENTITY % SVG.animateTransform.qname "%SVG.pfx;animateTransform" > +<!ENTITY % SVG.mpath.qname "%SVG.pfx;mpath" > + +<!-- module: svg-font.mod .............................. --> + +<!ENTITY % SVG.font.qname "%SVG.pfx;font" > +<!ENTITY % SVG.font-face.qname "%SVG.pfx;font-face" > +<!ENTITY % SVG.glyph.qname "%SVG.pfx;glyph" > +<!ENTITY % SVG.missing-glyph.qname "%SVG.pfx;missing-glyph" > +<!ENTITY % SVG.hkern.qname "%SVG.pfx;hkern" > +<!ENTITY % SVG.vkern.qname "%SVG.pfx;vkern" > +<!ENTITY % SVG.font-face-src.qname "%SVG.pfx;font-face-src" > +<!ENTITY % SVG.font-face-uri.qname "%SVG.pfx;font-face-uri" > +<!ENTITY % SVG.font-face-format.qname "%SVG.pfx;font-face-format" > +<!ENTITY % SVG.font-face-name.qname "%SVG.pfx;font-face-name" > +<!ENTITY % SVG.definition-src.qname "%SVG.pfx;definition-src" > + +<!-- module: svg-extensibility.mod ..................... --> + +<!ENTITY % SVG.foreignObject.qname "%SVG.pfx;foreignObject" > + +<!-- end of svg-qname.mod --> +]]> + +<!ENTITY % svg-model.module "INCLUDE" > +<![%svg-model.module;[ +<!-- instantiate the Document Model declared in the DTD driver --> +<!-- ....................................................................... --> +<!-- SVG 1.1 Document Model Module ......................................... --> +<!-- file: svg11-model.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Model//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-model.mod" + + ....................................................................... --> + +<!-- SVG 1.1 Document Model + + This module describes the groupings of elements that make up + common content models for SVG elements. +--> + +<!-- module: svg-structure.mod ......................... --> + +<!ENTITY % SVG.Description.extra.class "" > +<!ENTITY % SVG.Description.class + "%SVG.desc.qname; | %SVG.title.qname; | %SVG.metadata.qname; + %SVG.Description.extra.class;" +> + +<!ENTITY % SVG.Use.extra.class "" > +<!ENTITY % SVG.Use.class + "| %SVG.use.qname; %SVG.Use.extra.class;" +> + +<!ENTITY % SVG.Structure.extra.class "" > +<!ENTITY % SVG.Structure.class + "| %SVG.svg.qname; | %SVG.g.qname; | %SVG.defs.qname; | %SVG.symbol.qname; + %SVG.Use.class; %SVG.Structure.extra.class;" +> + +<!-- module: svg-conditional.mod ....................... --> + +<!ENTITY % SVG.Conditional.extra.class "" > +<!ENTITY % SVG.Conditional.class + "| %SVG.switch.qname; %SVG.Conditional.extra.class;" +> + +<!-- module: svg-image.mod ............................. --> + +<!ENTITY % SVG.Image.extra.class "" > +<!ENTITY % SVG.Image.class + "| %SVG.image.qname; %SVG.Image.extra.class;" +> + +<!-- module: svg-style.mod ............................. --> + +<!ENTITY % SVG.Style.extra.class "" > +<!ENTITY % SVG.Style.class + "| %SVG.style.qname; %SVG.Style.extra.class;" +> + +<!-- module: svg-shape.mod ............................. --> + +<!ENTITY % SVG.Shape.extra.class "" > +<!ENTITY % SVG.Shape.class + "| %SVG.path.qname; | %SVG.rect.qname; | %SVG.circle.qname; + | %SVG.line.qname; | %SVG.ellipse.qname; | %SVG.polyline.qname; + | %SVG.polygon.qname; %SVG.Shape.extra.class;" +> + +<!-- module: svg-text.mod .............................. --> + +<!ENTITY % SVG.Text.extra.class "" > +<!ENTITY % SVG.Text.class + "| %SVG.text.qname; | %SVG.altGlyphDef.qname; %SVG.Text.extra.class;" +> + +<!ENTITY % SVG.TextContent.extra.class "" > +<!ENTITY % SVG.TextContent.class + "| %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.textPath.qname; + | %SVG.altGlyph.qname; %SVG.TextContent.extra.class;" +> + +<!-- module: svg-marker.mod ............................ --> + +<!ENTITY % SVG.Marker.extra.class "" > +<!ENTITY % SVG.Marker.class + "| %SVG.marker.qname; %SVG.Marker.extra.class;" +> + +<!-- module: svg-profile.mod ........................... --> + +<!ENTITY % SVG.Profile.extra.class "" > +<!ENTITY % SVG.Profile.class + "| %SVG.color-profile.qname; %SVG.Profile.extra.class;" +> + +<!-- module: svg-gradient.mod .......................... --> + +<!ENTITY % SVG.Gradient.extra.class "" > +<!ENTITY % SVG.Gradient.class + "| %SVG.linearGradient.qname; | %SVG.radialGradient.qname; + %SVG.Gradient.extra.class;" +> + +<!-- module: svg-pattern.mod ........................... --> + +<!ENTITY % SVG.Pattern.extra.class "" > +<!ENTITY % SVG.Pattern.class + "| %SVG.pattern.qname; %SVG.Pattern.extra.class;" +> + +<!-- module: svg-clip.mod .............................. --> + +<!ENTITY % SVG.Clip.extra.class "" > +<!ENTITY % SVG.Clip.class + "| %SVG.clipPath.qname; %SVG.Clip.extra.class;" +> + +<!-- module: svg-mask.mod .............................. --> + +<!ENTITY % SVG.Mask.extra.class "" > +<!ENTITY % SVG.Mask.class + "| %SVG.mask.qname; %SVG.Mask.extra.class;" +> + +<!-- module: svg-filter.mod ............................ --> + +<!ENTITY % SVG.Filter.extra.class "" > +<!ENTITY % SVG.Filter.class + "| %SVG.filter.qname; %SVG.Filter.extra.class;" +> + +<!ENTITY % SVG.FilterPrimitive.extra.class "" > +<!ENTITY % SVG.FilterPrimitive.class + "| %SVG.feBlend.qname; | %SVG.feColorMatrix.qname; + | %SVG.feComponentTransfer.qname; | %SVG.feComposite.qname; + | %SVG.feConvolveMatrix.qname; | %SVG.feDiffuseLighting.qname; + | %SVG.feDisplacementMap.qname; | %SVG.feFlood.qname; + | %SVG.feGaussianBlur.qname; | %SVG.feImage.qname; | %SVG.feMerge.qname; + | %SVG.feMorphology.qname; | %SVG.feOffset.qname; + | %SVG.feSpecularLighting.qname; | %SVG.feTile.qname; + | %SVG.feTurbulence.qname; %SVG.FilterPrimitive.extra.class;" +> + +<!-- module: svg-cursor.mod ............................ --> + +<!ENTITY % SVG.Cursor.extra.class "" > +<!ENTITY % SVG.Cursor.class + "| %SVG.cursor.qname; %SVG.Cursor.extra.class;" +> + +<!-- module: svg-hyperlink.mod ......................... --> + +<!ENTITY % SVG.Hyperlink.extra.class "" > +<!ENTITY % SVG.Hyperlink.class + "| %SVG.a.qname; %SVG.Hyperlink.extra.class;" +> + +<!-- module: svg-view.mod .............................. --> + +<!ENTITY % SVG.View.extra.class "" > +<!ENTITY % SVG.View.class + "| %SVG.view.qname; %SVG.View.extra.class;" +> + +<!-- module: svg-script.mod ............................ --> + +<!ENTITY % SVG.Script.extra.class "" > +<!ENTITY % SVG.Script.class + "| %SVG.script.qname; %SVG.Script.extra.class;" +> + +<!-- module: svg-animation.mod ......................... --> + +<!ENTITY % SVG.Animation.extra.class "" > +<!ENTITY % SVG.Animation.class + "%SVG.animate.qname; | %SVG.set.qname; | %SVG.animateMotion.qname; | + %SVG.animateColor.qname; | %SVG.animateTransform.qname; + %SVG.Animation.extra.class;" +> + +<!-- module: svg-font.mod .............................. --> + +<!ENTITY % SVG.Font.extra.class "" > +<!ENTITY % SVG.Font.class + "| %SVG.font.qname; | %SVG.font-face.qname; %SVG.Font.extra.class;" +> + +<!-- module: svg-extensibility.mod ..................... --> + +<!ENTITY % SVG.Extensibility.extra.class "" > +<!ENTITY % SVG.Extensibility.class + "| %SVG.foreignObject.qname; %SVG.Extensibility.extra.class;" +> + +<!-- end of svg11-model.mod --> +]]> + +<!ENTITY % svg-attribs.module "INCLUDE" > +<![%svg-attribs.module;[ +<!-- instantiate the Attribute Collection declared in the DTD driver --> +<!-- ....................................................................... --> +<!-- SVG 1.1 Attribute Collection Module ................................... --> +<!-- file: svg11-attribs.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Attribute Collection//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-attribs.mod" + + ....................................................................... --> + +<!-- SVG 1.1 Attribute Collection + + This module defines the set of common attributes that can be present + on many SVG elements. +--> + +<!-- module: svg-conditional.mod ....................... --> + +<!ENTITY % ExtensionList.datatype "CDATA" > +<!ENTITY % FeatureList.datatype "CDATA" > + +<!ENTITY % SVG.Conditional.extra.attrib "" > +<!ENTITY % SVG.Conditional.attrib + "requiredFeatures %FeatureList.datatype; #IMPLIED + requiredExtensions %ExtensionList.datatype; #IMPLIED + systemLanguage %LanguageCodes.datatype; #IMPLIED + %SVG.Conditional.extra.attrib;" +> + +<!-- module: svg-style.mod ............................. --> + +<!ENTITY % ClassList.datatype "CDATA" > +<!ENTITY % StyleSheet.datatype "CDATA" > + +<!ENTITY % SVG.Style.extra.attrib "" > +<!ENTITY % SVG.Style.attrib + "style %StyleSheet.datatype; #IMPLIED + class %ClassList.datatype; #IMPLIED + %SVG.Style.extra.attrib;" +> + +<!-- module: svg-text.mod .............................. --> + +<!ENTITY % BaselineShiftValue.datatype "CDATA" > +<!ENTITY % FontFamilyValue.datatype "CDATA" > +<!ENTITY % FontSizeValue.datatype "CDATA" > +<!ENTITY % FontSizeAdjustValue.datatype "CDATA" > +<!ENTITY % GlyphOrientationHorizontalValue.datatype "CDATA" > +<!ENTITY % GlyphOrientationVerticalValue.datatype "CDATA" > +<!ENTITY % KerningValue.datatype "CDATA" > +<!ENTITY % SpacingValue.datatype "CDATA" > +<!ENTITY % TextDecorationValue.datatype "CDATA" > + +<!ENTITY % SVG.Text.extra.attrib "" > +<!ENTITY % SVG.Text.attrib + "writing-mode ( lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit ) #IMPLIED + %SVG.Text.extra.attrib;" +> + +<!ENTITY % SVG.TextContent.extra.attrib "" > +<!ENTITY % SVG.TextContent.attrib + "alignment-baseline ( auto | baseline | before-edge | text-before-edge | + middle | central | after-edge | text-after-edge | + ideographic | alphabetic | hanging | mathematical | + inherit ) #IMPLIED + baseline-shift %BaselineShiftValue.datatype; #IMPLIED + direction ( ltr | rtl | inherit ) #IMPLIED + dominant-baseline ( auto | use-script | no-change | reset-size | + ideographic | alphabetic | hanging | mathematical | + central | middle | text-after-edge | text-before-edge | + inherit ) #IMPLIED + glyph-orientation-horizontal %GlyphOrientationHorizontalValue.datatype; + #IMPLIED + glyph-orientation-vertical %GlyphOrientationVerticalValue.datatype; + #IMPLIED + kerning %KerningValue.datatype; #IMPLIED + letter-spacing %SpacingValue.datatype; #IMPLIED + text-anchor ( start | middle | end | inherit ) #IMPLIED + text-decoration %TextDecorationValue.datatype; #IMPLIED + unicode-bidi ( normal | embed | bidi-override | inherit ) #IMPLIED + word-spacing %SpacingValue.datatype; #IMPLIED + %SVG.TextContent.extra.attrib;" +> + +<!ENTITY % SVG.Font.extra.attrib "" > +<!ENTITY % SVG.Font.attrib + "font-family %FontFamilyValue.datatype; #IMPLIED + font-size %FontSizeValue.datatype; #IMPLIED + font-size-adjust %FontSizeAdjustValue.datatype; #IMPLIED + font-stretch ( normal | wider | narrower | ultra-condensed | + extra-condensed | condensed | semi-condensed | + semi-expanded | expanded | extra-expanded | + ultra-expanded | inherit ) #IMPLIED + font-style ( normal | italic | oblique | inherit ) #IMPLIED + font-variant ( normal | small-caps | inherit ) #IMPLIED + font-weight ( normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | + 500 | 600 | 700 | 800 | 900 | inherit ) #IMPLIED + %SVG.Font.extra.attrib;" +> + +<!-- module: svg-marker.mod ............................ --> + +<!ENTITY % MarkerValue.datatype "CDATA" > + +<!ENTITY % SVG.Marker.extra.attrib "" > +<!ENTITY % SVG.Marker.attrib + "marker-start %MarkerValue.datatype; #IMPLIED + marker-mid %MarkerValue.datatype; #IMPLIED + marker-end %MarkerValue.datatype; #IMPLIED + %SVG.Marker.extra.attrib;" +> + +<!-- module: svg-profile.mod ........................... --> + +<!ENTITY % SVG.Profile.extra.attrib "" > +<!ENTITY % SVG.Profile.attrib + "color-profile CDATA #IMPLIED + %SVG.Profile.extra.attrib;" +> + +<!-- module: svg-gradient.mod .......................... --> + +<!ENTITY % NumberOrPercentage.datatype "CDATA" > + +<!ENTITY % SVG.Gradient.extra.attrib "" > +<!ENTITY % SVG.Gradient.attrib + "stop-color %SVGColor.datatype; #IMPLIED + stop-opacity %OpacityValue.datatype; #IMPLIED + %SVG.Gradient.extra.attrib;" +> + +<!-- module: svg-clip.mod .............................. --> + +<!ENTITY % ClipPathValue.datatype "CDATA" > + +<!ENTITY % SVG.Clip.extra.attrib "" > +<!ENTITY % SVG.Clip.attrib + "clip-path %ClipPathValue.datatype; #IMPLIED + clip-rule %ClipFillRule.datatype; #IMPLIED + %SVG.Clip.extra.attrib;" +> + +<!-- module: svg-mask.mod .............................. --> + +<!ENTITY % MaskValue.datatype "CDATA" > + +<!ENTITY % SVG.Mask.extra.attrib "" > +<!ENTITY % SVG.Mask.attrib + "mask %MaskValue.datatype; #IMPLIED + %SVG.Mask.extra.attrib;" +> + +<!-- module: svg-filter.mod ............................ --> + +<!ENTITY % FilterValue.datatype "CDATA" > +<!ENTITY % NumberOptionalNumber.datatype "CDATA" > + +<!ENTITY % SVG.Filter.extra.attrib "" > +<!ENTITY % SVG.Filter.attrib + "filter %FilterValue.datatype; #IMPLIED + %SVG.Filter.extra.attrib;" +> + +<!ENTITY % SVG.FilterColor.extra.attrib "" > +<!ENTITY % SVG.FilterColor.attrib + "color-interpolation-filters ( auto | sRGB | linearRGB | inherit ) + #IMPLIED + %SVG.FilterColor.extra.attrib;" +> + +<!-- module: svg-cursor.mod ............................ --> + +<!ENTITY % CursorValue.datatype "CDATA" > + +<!ENTITY % SVG.Cursor.extra.attrib "" > +<!ENTITY % SVG.Cursor.attrib + "cursor %CursorValue.datatype; #IMPLIED + %SVG.Cursor.extra.attrib;" +> + +<!-- end of svg11-attribs.mod --> +]]> + +<!-- end of svg-framework.mod --> +]]> + +<!-- Post-Framework Redeclaration Placeholder .................... --> +<!ENTITY % svg-postfw-redecl.module "IGNORE" > +<![%svg-postfw-redecl.module;[ +%svg-postfw-redecl.mod;]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Core Attribute Module ....................................... --> +<!ENTITY % svg-core-attrib.module "INCLUDE" > +<![%svg-core-attrib.module;[ +<!ENTITY % svg-core-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Core Attribute//EN" + "svg-core-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Core Attribute Module ......................................... --> +<!-- file: svg-core-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Core Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-core-attrib.mod" + + ....................................................................... --> + +<!-- Core Attribute + + id, xml:base, xml:lang, xml:space + + This module defines the core set of attributes that can be present on + any element. +--> + +<!ENTITY % SVG.id.attrib + "id ID #IMPLIED" +> + +<!ENTITY % SVG.base.attrib + "xml:base %URI.datatype; #IMPLIED" +> + +<!ENTITY % SVG.lang.attrib + "xml:lang %LanguageCode.datatype; #IMPLIED" +> + +<!ENTITY % SVG.space.attrib + "xml:space ( default | preserve ) #IMPLIED" +> + +<!ENTITY % SVG.Core.extra.attrib "" > + +<!ENTITY % SVG.Core.attrib + "%SVG.id.attrib; + %SVG.base.attrib; + %SVG.lang.attrib; + %SVG.space.attrib; + %SVG.Core.extra.attrib;" +> + +<!-- end of svg-core-attrib.mod --> +]]> + +<!-- Container Attribute Module .................................. --> +<!ENTITY % svg-container-attrib.module "INCLUDE" > +<![%svg-container-attrib.module;[ +<!ENTITY % svg-container-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Container Attribute//EN" + "svg-container-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Container Attribute Module .................................... --> +<!-- file: svg-container-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Container Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-container-attrib.mod" + + ....................................................................... --> + +<!-- Container Attribute + + enable-background + + This module defines the Container attribute set. +--> + +<!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') --> +<!ENTITY % EnableBackgroundValue.datatype "CDATA" > + +<!ENTITY % SVG.enable-background.attrib + "enable-background %EnableBackgroundValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.Container.extra.attrib "" > + +<!ENTITY % SVG.Container.attrib + "%SVG.enable-background.attrib; + %SVG.Container.extra.attrib;" +> + +<!-- end of svg-container-attrib.mod --> +]]> + +<!-- Viewport Attribute Module ................................... --> +<!ENTITY % svg-viewport-attrib.module "INCLUDE" > +<![%svg-viewport-attrib.module;[ +<!ENTITY % svg-viewport-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Viewport Attribute//EN" + "svg-viewport-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Viewport Attribute Module ..................................... --> +<!-- file: svg-viewport-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Viewport Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-viewport-attrib.mod" + + ....................................................................... --> + +<!-- Viewport Attribute + + clip, overflow + + This module defines the Viewport attribute set. +--> + +<!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) --> +<!ENTITY % ClipValue.datatype "CDATA" > + +<!ENTITY % SVG.clip.attrib + "clip %ClipValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.overflow.attrib + "overflow ( visible | hidden | scroll | auto | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.Viewport.extra.attrib "" > + +<!ENTITY % SVG.Viewport.attrib + "%SVG.clip.attrib; + %SVG.overflow.attrib; + %SVG.Viewport.extra.attrib;" +> + +<!-- end of svg-viewport-attrib.mod --> +]]> + +<!-- Paint Attribute Module ...................................... --> +<!ENTITY % svg-paint-attrib.module "INCLUDE" > +<![%svg-paint-attrib.module;[ +<!ENTITY % svg-paint-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Attribute//EN" + "svg-paint-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Paint Attribute Module ........................................ --> +<!-- file: svg-paint-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-paint-attrib.mod" + + ....................................................................... --> + +<!-- Paint Attribute + + fill, fill-rule, stroke, stroke-dasharray, stroke-dashoffset, + stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-width, color, + color-interpolation, color-rendering + + This module defines the Paint and Color attribute sets. +--> + +<!-- a 'fill' or 'stroke' property/attribute value: <paint> --> +<!ENTITY % Paint.datatype "CDATA" > + +<!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) --> +<!ENTITY % StrokeDashArrayValue.datatype "CDATA" > + +<!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) --> +<!ENTITY % StrokeDashOffsetValue.datatype "CDATA" > + +<!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) --> +<!ENTITY % StrokeMiterLimitValue.datatype "CDATA" > + +<!-- 'stroke-width' property/attribute value (e.g., <length>) --> +<!ENTITY % StrokeWidthValue.datatype "CDATA" > + +<!ENTITY % SVG.fill.attrib + "fill %Paint.datatype; #IMPLIED" +> + +<!ENTITY % SVG.fill-rule.attrib + "fill-rule %ClipFillRule.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke.attrib + "stroke %Paint.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke-dasharray.attrib + "stroke-dasharray %StrokeDashArrayValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke-dashoffset.attrib + "stroke-dashoffset %StrokeDashOffsetValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke-linecap.attrib + "stroke-linecap ( butt | round | square | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.stroke-linejoin.attrib + "stroke-linejoin ( miter | round | bevel | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.stroke-miterlimit.attrib + "stroke-miterlimit %StrokeMiterLimitValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke-width.attrib + "stroke-width %StrokeWidthValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.Paint.extra.attrib "" > + +<!ENTITY % SVG.Paint.attrib + "%SVG.fill.attrib; + %SVG.fill-rule.attrib; + %SVG.stroke.attrib; + %SVG.stroke-dasharray.attrib; + %SVG.stroke-dashoffset.attrib; + %SVG.stroke-linecap.attrib; + %SVG.stroke-linejoin.attrib; + %SVG.stroke-miterlimit.attrib; + %SVG.stroke-width.attrib; + %SVG.Paint.extra.attrib;" +> + +<!ENTITY % SVG.color.attrib + "color %Color.datatype; #IMPLIED" +> + +<!ENTITY % SVG.color-interpolation.attrib + "color-interpolation ( auto | sRGB | linearRGB | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.color-rendering.attrib + "color-rendering ( auto | optimizeSpeed | optimizeQuality | inherit ) + #IMPLIED" +> + +<!ENTITY % SVG.Color.extra.attrib "" > + +<!ENTITY % SVG.Color.attrib + "%SVG.color.attrib; + %SVG.color-interpolation.attrib; + %SVG.color-rendering.attrib; + %SVG.Color.extra.attrib;" +> + +<!-- end of svg-paint-attrib.mod --> +]]> + +<!-- Paint Opacity Attribute Module .............................. --> +<!ENTITY % svg-opacity-attrib.module "INCLUDE" > +<![%svg-opacity-attrib.module;[ +<!ENTITY % svg-opacity-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Opacity Attribute//EN" + "svg-opacity-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Paint Opacity Attribute Module ................................ --> +<!-- file: svg-opacity-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Opacity Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-opacity-attrib.mod" + + ....................................................................... --> + +<!-- Paint Opacity Attribute + + opacity, fill-opacity, stroke-opacity + + This module defines the Opacity attribute set. +--> + +<!ENTITY % SVG.opacity.attrib + "opacity %OpacityValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.fill-opacity.attrib + "fill-opacity %OpacityValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke-opacity.attrib + "stroke-opacity %OpacityValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.Opacity.extra.attrib "" > + +<!ENTITY % SVG.Opacity.attrib + "%SVG.opacity.attrib; + %SVG.fill-opacity.attrib; + %SVG.stroke-opacity.attrib; + %SVG.Opacity.extra.attrib;" +> + +<!-- end of svg-opacity-attrib.mod --> +]]> + +<!-- Graphics Attribute Module ................................... --> +<!ENTITY % svg-graphics-attrib.module "INCLUDE" > +<![%svg-graphics-attrib.module;[ +<!ENTITY % svg-graphics-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphics Attribute//EN" + "svg-graphics-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Graphics Attribute Module ..................................... --> +<!-- file: svg-graphics-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphics Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-graphics-attrib.mod" + + ....................................................................... --> + +<!-- Graphics Attribute + + display, image-rendering, pointer-events, shape-rendering, + text-rendering, visibility + + This module defines the Graphics attribute set. +--> + +<!ENTITY % SVG.display.attrib + "display ( inline | block | list-item | run-in | compact | marker | + table | inline-table | table-row-group | table-header-group | + table-footer-group | table-row | table-column-group | + table-column | table-cell | table-caption | none | inherit ) + #IMPLIED" +> + +<!ENTITY % SVG.image-rendering.attrib + "image-rendering ( auto | optimizeSpeed | optimizeQuality | inherit ) + #IMPLIED" +> + +<!ENTITY % SVG.pointer-events.attrib + "pointer-events ( visiblePainted | visibleFill | visibleStroke | visible | + painted | fill | stroke | all | none | inherit ) + #IMPLIED" +> + +<!ENTITY % SVG.shape-rendering.attrib + "shape-rendering ( auto | optimizeSpeed | crispEdges | geometricPrecision | + inherit ) #IMPLIED" +> + +<!ENTITY % SVG.text-rendering.attrib + "text-rendering ( auto | optimizeSpeed | optimizeLegibility | + geometricPrecision | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.visibility.attrib + "visibility ( visible | hidden | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.Graphics.extra.attrib "" > + +<!ENTITY % SVG.Graphics.attrib + "%SVG.display.attrib; + %SVG.image-rendering.attrib; + %SVG.pointer-events.attrib; + %SVG.shape-rendering.attrib; + %SVG.text-rendering.attrib; + %SVG.visibility.attrib; + %SVG.Graphics.extra.attrib;" +> + +<!-- end of svg-graphics-attrib.mod --> +]]> + +<!-- Document Events Attribute Module ............................ --> +<!ENTITY % svg-docevents-attrib.module "INCLUDE" > +<![%svg-docevents-attrib.module;[ +<!ENTITY % svg-docevents-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Events Attribute//EN" + "svg-docevents-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Document Events Attribute Module .............................. --> +<!-- file: svg-docevents-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Events Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-docevents-attrib.mod" + + ....................................................................... --> + +<!-- Document Events Attribute + + onunload, onabort, onerror, onresize, onscroll, onzoom + + This module defines the DocumentEvents attribute set. +--> + +<!ENTITY % SVG.onunload.attrib + "onunload %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onabort.attrib + "onabort %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onerror.attrib + "onerror %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onresize.attrib + "onresize %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onscroll.attrib + "onscroll %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onzoom.attrib + "onzoom %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.DocumentEvents.extra.attrib "" > + +<!ENTITY % SVG.DocumentEvents.attrib + "%SVG.onunload.attrib; + %SVG.onabort.attrib; + %SVG.onerror.attrib; + %SVG.onresize.attrib; + %SVG.onscroll.attrib; + %SVG.onzoom.attrib; + %SVG.DocumentEvents.extra.attrib;" +> + +<!-- end of svg-docevents-attrib.mod --> +]]> + +<!-- Graphical Element Events Attribute Module ................... --> +<!ENTITY % svg-graphevents-attrib.module "INCLUDE" > +<![%svg-graphevents-attrib.module;[ +<!ENTITY % svg-graphevents-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphical Element Events Attribute//EN" + "svg-graphevents-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Graphical Element Events Attribute Module ..................... --> +<!-- file: svg-graphevents-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphical Element Events Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-graphevents-attrib.mod" + + ....................................................................... --> + +<!-- Graphical Element Events Attribute + + onfocusin, onfocusout, onactivate, onclick, onmousedown, onmouseup, + onmouseover, onmousemove, onmouseout, onload + + This module defines the GraphicalEvents attribute set. +--> + +<!ENTITY % SVG.onfocusin.attrib + "onfocusin %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onfocusout.attrib + "onfocusout %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onactivate.attrib + "onactivate %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onclick.attrib + "onclick %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onmousedown.attrib + "onmousedown %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onmouseup.attrib + "onmouseup %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onmouseover.attrib + "onmouseover %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onmousemove.attrib + "onmousemove %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onmouseout.attrib + "onmouseout %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onload.attrib + "onload %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.GraphicalEvents.extra.attrib "" > + +<!ENTITY % SVG.GraphicalEvents.attrib + "%SVG.onfocusin.attrib; + %SVG.onfocusout.attrib; + %SVG.onactivate.attrib; + %SVG.onclick.attrib; + %SVG.onmousedown.attrib; + %SVG.onmouseup.attrib; + %SVG.onmouseover.attrib; + %SVG.onmousemove.attrib; + %SVG.onmouseout.attrib; + %SVG.onload.attrib; + %SVG.GraphicalEvents.extra.attrib;" +> + +<!-- end of svg-graphevents-attrib.mod --> +]]> + +<!-- Animation Events Attribute Module ........................... --> +<!ENTITY % svg-animevents-attrib.module "INCLUDE" > +<![%svg-animevents-attrib.module;[ +<!ENTITY % svg-animevents-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Animation Events Attribute//EN" + "svg-animevents-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Animation Events Attribute Module ............................. --> +<!-- file: svg-animevents-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Animation Events Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-animevents-attrib.mod" + + ....................................................................... --> + +<!-- Animation Events Attribute + + onbegin, onend, onrepeat, onload + + This module defines the AnimationEvents attribute set. +--> + +<!ENTITY % SVG.onbegin.attrib + "onbegin %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onend.attrib + "onend %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onrepeat.attrib + "onrepeat %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onload.attrib + "onload %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.AnimationEvents.extra.attrib "" > + +<!ENTITY % SVG.AnimationEvents.attrib + "%SVG.onbegin.attrib; + %SVG.onend.attrib; + %SVG.onrepeat.attrib; + %SVG.onload.attrib; + %SVG.AnimationEvents.extra.attrib;" +> + +<!-- end of svg-animevents-attrib.mod --> +]]> + +<!-- XLink Attribute Module ...................................... --> +<!ENTITY % svg-xlink-attrib.module "INCLUDE" > +<![%svg-xlink-attrib.module;[ +<!ENTITY % svg-xlink-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 XLink Attribute//EN" + "svg-xlink-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 XLink Attribute Module ........................................ --> +<!-- file: svg-xlink-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 XLink Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-xlink-attrib.mod" + + ....................................................................... --> + +<!-- XLink Attribute + + type, href, role, arcrole, title, show, actuate + + This module defines the XLink, XLinkRequired, XLinkEmbed, and + XLinkReplace attribute set. +--> + +<!ENTITY % SVG.XLink.extra.attrib "" > + +<!ENTITY % SVG.XLink.attrib + "%XLINK.xmlns.attrib; + %XLINK.pfx;type ( simple ) #FIXED 'simple' + %XLINK.pfx;href %URI.datatype; #IMPLIED + %XLINK.pfx;role %URI.datatype; #IMPLIED + %XLINK.pfx;arcrole %URI.datatype; #IMPLIED + %XLINK.pfx;title CDATA #IMPLIED + %XLINK.pfx;show ( other ) 'other' + %XLINK.pfx;actuate ( onLoad ) #FIXED 'onLoad' + %SVG.XLink.extra.attrib;" +> + +<!ENTITY % SVG.XLinkRequired.extra.attrib "" > + +<!ENTITY % SVG.XLinkRequired.attrib + "%XLINK.xmlns.attrib; + %XLINK.pfx;type ( simple ) #FIXED 'simple' + %XLINK.pfx;href %URI.datatype; #REQUIRED + %XLINK.pfx;role %URI.datatype; #IMPLIED + %XLINK.pfx;arcrole %URI.datatype; #IMPLIED + %XLINK.pfx;title CDATA #IMPLIED + %XLINK.pfx;show ( other ) 'other' + %XLINK.pfx;actuate ( onLoad ) #FIXED 'onLoad' + %SVG.XLinkRequired.extra.attrib;" +> + +<!ENTITY % SVG.XLinkEmbed.extra.attrib "" > + +<!ENTITY % SVG.XLinkEmbed.attrib + "%XLINK.xmlns.attrib; + %XLINK.pfx;type ( simple ) #FIXED 'simple' + %XLINK.pfx;href %URI.datatype; #REQUIRED + %XLINK.pfx;role %URI.datatype; #IMPLIED + %XLINK.pfx;arcrole %URI.datatype; #IMPLIED + %XLINK.pfx;title CDATA #IMPLIED + %XLINK.pfx;show ( embed ) 'embed' + %XLINK.pfx;actuate ( onLoad ) #FIXED 'onLoad' + %SVG.XLinkEmbed.extra.attrib;" +> + +<!ENTITY % SVG.XLinkReplace.extra.attrib "" > + +<!ENTITY % SVG.XLinkReplace.attrib + "%XLINK.xmlns.attrib; + %XLINK.pfx;type ( simple ) #FIXED 'simple' + %XLINK.pfx;href %URI.datatype; #REQUIRED + %XLINK.pfx;role %URI.datatype; #IMPLIED + %XLINK.pfx;arcrole %URI.datatype; #IMPLIED + %XLINK.pfx;title CDATA #IMPLIED + %XLINK.pfx;show ( new | replace ) 'replace' + %XLINK.pfx;actuate ( onRequest ) #FIXED 'onRequest' + %SVG.XLinkReplace.extra.attrib;" +> + +<!-- end of svg-xlink-attrib.mod --> +]]> + +<!-- External Resources Attribute Module ......................... --> +<!ENTITY % svg-extresources-attrib.module "INCLUDE" > +<![%svg-extresources-attrib.module;[ +<!ENTITY % svg-extresources-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 External Resources Attribute//EN" + "svg-extresources-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 External Resources Attribute Module ........................... --> +<!-- file: svg-extresources-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 External Resources Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-extresources-attrib.mod" + + ....................................................................... --> + +<!-- External Resources Attribute + + externalResourcesRequired + + This module defines the External attribute set. +--> + +<!ENTITY % SVG.externalResourcesRequired.attrib + "externalResourcesRequired %Boolean.datatype; #IMPLIED" +> + +<!ENTITY % SVG.External.extra.attrib "" > + +<!ENTITY % SVG.External.attrib + "%SVG.externalResourcesRequired.attrib; + %SVG.External.extra.attrib;" +> + +<!-- end of svg-extresources-attrib.mod --> +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Structure Module ............................................ --> +<!ENTITY % svg-structure.module "INCLUDE" > +<![%svg-structure.module;[ +<!ENTITY % svg-structure.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Structure//EN" + "svg-structure.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Structure Module .............................................. --> +<!-- file: svg-structure.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Structure//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-structure.mod" + + ....................................................................... --> + +<!-- Structure + + svg, g, defs, desc, title, metadata, symbol, use + + This module declares the major structural elements and their attributes. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.svg.qname "svg" > +<!ENTITY % SVG.g.qname "g" > +<!ENTITY % SVG.defs.qname "defs" > +<!ENTITY % SVG.desc.qname "desc" > +<!ENTITY % SVG.title.qname "title" > +<!ENTITY % SVG.metadata.qname "metadata" > +<!ENTITY % SVG.symbol.qname "symbol" > +<!ENTITY % SVG.use.qname "use" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.DocumentEvents.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLinkEmbed.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Description.class ............................. --> + +<!ENTITY % SVG.Description.extra.class "" > + +<!ENTITY % SVG.Description.class + "%SVG.desc.qname; | %SVG.title.qname; | %SVG.metadata.qname; + %SVG.Description.extra.class;" +> + +<!-- SVG.Use.class ..................................... --> + +<!ENTITY % SVG.Use.extra.class "" > + +<!ENTITY % SVG.Use.class + "| %SVG.use.qname; %SVG.Use.extra.class;" +> + +<!-- SVG.Structure.class ............................... --> + +<!ENTITY % SVG.Structure.extra.class "" > + +<!ENTITY % SVG.Structure.class + "| %SVG.svg.qname; | %SVG.g.qname; | %SVG.defs.qname; | %SVG.symbol.qname; + %SVG.Use.class; %SVG.Structure.extra.class;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- svg: SVG Document Element ......................... --> + +<!ENTITY % SVG.svg.element "INCLUDE" > +<![%SVG.svg.element;[ +<!ENTITY % SVG.svg.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.svg.qname; %SVG.svg.content; > +<!-- end of SVG.svg.element -->]]> + +<!ENTITY % SVG.svg.attlist "INCLUDE" > +<![%SVG.svg.attlist;[ +<!ATTLIST %SVG.svg.qname; + %SVG.xmlns.attrib; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.DocumentEvents.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + viewBox %ViewBoxSpec.datatype; #IMPLIED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' + zoomAndPan ( disable | magnify ) 'magnify' + version %Number.datatype; #FIXED '1.1' + baseProfile %Text.datatype; #IMPLIED + contentScriptType %ContentType.datatype; 'text/ecmascript' + contentStyleType %ContentType.datatype; 'text/css' +> +<!-- end of SVG.svg.attlist -->]]> + +<!-- g: Group Element .................................. --> + +<!ENTITY % SVG.g.element "INCLUDE" > +<![%SVG.g.element;[ +<!ENTITY % SVG.g.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.g.qname; %SVG.g.content; > +<!-- end of SVG.g.element -->]]> + +<!ENTITY % SVG.g.attlist "INCLUDE" > +<![%SVG.g.attlist;[ +<!ATTLIST %SVG.g.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.g.attlist -->]]> + +<!-- defs: Definisions Element ......................... --> + +<!ENTITY % SVG.defs.element "INCLUDE" > +<![%SVG.defs.element;[ +<!ENTITY % SVG.defs.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.defs.qname; %SVG.defs.content; > +<!-- end of SVG.defs.element -->]]> + +<!ENTITY % SVG.defs.attlist "INCLUDE" > +<![%SVG.defs.attlist;[ +<!ATTLIST %SVG.defs.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.defs.attlist -->]]> + +<!-- desc: Description Element ......................... --> + +<!ENTITY % SVG.desc.element "INCLUDE" > +<![%SVG.desc.element;[ +<!ENTITY % SVG.desc.content "( #PCDATA )" > +<!ELEMENT %SVG.desc.qname; %SVG.desc.content; > +<!-- end of SVG.desc.element -->]]> + +<!ENTITY % SVG.desc.attlist "INCLUDE" > +<![%SVG.desc.attlist;[ +<!ATTLIST %SVG.desc.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; +> +<!-- end of SVG.desc.attlist -->]]> + +<!-- title: Title Element .............................. --> + +<!ENTITY % SVG.title.element "INCLUDE" > +<![%SVG.title.element;[ +<!ENTITY % SVG.title.content "( #PCDATA )" > +<!ELEMENT %SVG.title.qname; %SVG.title.content; > +<!-- end of SVG.title.element -->]]> + +<!ENTITY % SVG.title.attlist "INCLUDE" > +<![%SVG.title.attlist;[ +<!ATTLIST %SVG.title.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; +> +<!-- end of SVG.title.attlist -->]]> + +<!-- metadata: Metadata Element ........................ --> + +<!ENTITY % SVG.metadata.element "INCLUDE" > +<![%SVG.metadata.element;[ +<!ENTITY % SVG.metadata.content "EMPTY" > +<!ELEMENT %SVG.metadata.qname; %SVG.metadata.content; > +<!-- end of SVG.metadata.element -->]]> + +<!ENTITY % SVG.metadata.attlist "INCLUDE" > +<![%SVG.metadata.attlist;[ +<!ATTLIST %SVG.metadata.qname; + %SVG.Core.attrib; +> +<!-- end of SVG.metadata.attlist -->]]> + +<!-- symbol: Symbol Element ............................ --> + +<!ENTITY % SVG.symbol.element "INCLUDE" > +<![%SVG.symbol.element;[ +<!ENTITY % SVG.symbol.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.symbol.qname; %SVG.symbol.content; > +<!-- end of SVG.symbol.element -->]]> + +<!ENTITY % SVG.symbol.attlist "INCLUDE" > +<![%SVG.symbol.attlist;[ +<!ATTLIST %SVG.symbol.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + viewBox %ViewBoxSpec.datatype; #IMPLIED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' +> +<!-- end of SVG.symbol.attlist -->]]> + +<!-- use: Use Element .................................. --> + +<!ENTITY % SVG.use.element "INCLUDE" > +<![%SVG.use.element;[ +<!ENTITY % SVG.use.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.use.qname; %SVG.use.content; > +<!-- end of SVG.use.element -->]]> + +<!ENTITY % SVG.use.attlist "INCLUDE" > +<![%SVG.use.attlist;[ +<!ATTLIST %SVG.use.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.XLinkEmbed.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.use.attlist -->]]> + +<!-- end of svg-structure.mod --> +]]> + +<!-- Conditional Processing Module ............................... --> +<!ENTITY % svg-conditional.module "INCLUDE" > +<![%svg-conditional.module;[ +<!ENTITY % svg-conditional.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Conditional Processing//EN" + "svg-conditional.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Conditional Processing Module ................................. --> +<!-- file: svg-conditional.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Conditional Processing//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-conditional.mod" + + ....................................................................... --> + +<!-- Conditional Processing + + switch + + This module declares markup to provide support for conditional processing. +--> + +<!-- extension list specification --> +<!ENTITY % ExtensionList.datatype "CDATA" > + +<!-- feature list specification --> +<!ENTITY % FeatureList.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.switch.qname "switch" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Conditional.class ............................. --> + +<!ENTITY % SVG.Conditional.extra.class "" > + +<!ENTITY % SVG.Conditional.class + "| %SVG.switch.qname; %SVG.Conditional.extra.class;" +> + +<!-- SVG.Conditional.attrib ............................ --> + +<!ENTITY % SVG.Conditional.extra.attrib "" > + +<!ENTITY % SVG.Conditional.attrib + "requiredFeatures %FeatureList.datatype; #IMPLIED + requiredExtensions %ExtensionList.datatype; #IMPLIED + systemLanguage %LanguageCodes.datatype; #IMPLIED + %SVG.Conditional.extra.attrib;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- switch: Switch Element ............................ --> + +<!ENTITY % SVG.switch.element "INCLUDE" > +<![%SVG.switch.element;[ +<!ENTITY % SVG.switch.content + "(( %SVG.Description.class; )*, ( %SVG.svg.qname; | %SVG.g.qname; + | %SVG.use.qname; | %SVG.text.qname; | %SVG.Animation.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Shape.class; + %SVG.Hyperlink.class; %SVG.Extensibility.class; )*)" +> +<!ELEMENT %SVG.switch.qname; %SVG.switch.content; > +<!-- end of SVG.switch.element -->]]> + +<!ENTITY % SVG.switch.attlist "INCLUDE" > +<![%SVG.switch.attlist;[ +<!ATTLIST %SVG.switch.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.switch.attlist -->]]> + +<!-- end of svg-conditional.mod --> +]]> + +<!-- Image Module ................................................ --> +<!ENTITY % svg-image.module "INCLUDE" > +<![%svg-image.module;[ +<!ENTITY % svg-image.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Image//EN" + "svg-image.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Image Module .................................................. --> +<!-- file: svg-image.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Image//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-image.mod" + + ....................................................................... --> + +<!-- Image + + image + + This module declares markup to provide support for image. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.image.qname "image" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLinkEmbed.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Image.class ................................... --> + +<!ENTITY % SVG.Image.extra.class "" > + +<!ENTITY % SVG.Image.class + "| %SVG.image.qname; %SVG.Image.extra.class;" +> + +<!-- image: Image Element .............................. --> + +<!ENTITY % SVG.image.element "INCLUDE" > +<![%SVG.image.element;[ +<!ENTITY % SVG.image.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.image.qname; %SVG.image.content; > +<!-- end of SVG.image.element -->]]> + +<!ENTITY % SVG.image.attlist "INCLUDE" > +<![%SVG.image.attlist;[ +<!ATTLIST %SVG.image.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Viewport.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Profile.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.XLinkEmbed.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #REQUIRED + height %Length.datatype; #REQUIRED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.image.attlist -->]]> + +<!-- end of svg-image.mod --> +]]> + +<!-- Style Module ................................................ --> +<!ENTITY % svg-style.module "INCLUDE" > +<![%svg-style.module;[ +<!ENTITY % svg-style.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Style//EN" + "svg-style.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Style Module .................................................. --> +<!-- file: svg-style.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Style//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-style.mod" + + ....................................................................... --> + +<!-- Style + + style + + This module declares markup to provide support for stylesheet. +--> + +<!-- list of classes --> +<!ENTITY % ClassList.datatype "CDATA" > + +<!-- comma-separated list of media descriptors. --> +<!ENTITY % MediaDesc.datatype "CDATA" > + +<!-- style sheet data --> +<!ENTITY % StyleSheet.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.style.qname "style" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > + +<!-- SVG.Style.class ................................... --> + +<!ENTITY % SVG.Style.extra.class "" > + +<!ENTITY % SVG.Style.class + "| %SVG.style.qname; %SVG.Style.extra.class;" +> + +<!-- SVG.Style.attrib .................................. --> + +<!ENTITY % SVG.Style.extra.attrib "" > + +<!ENTITY % SVG.Style.attrib + "style %StyleSheet.datatype; #IMPLIED + class %ClassList.datatype; #IMPLIED + %SVG.Style.extra.attrib;" +> + +<!-- style: Style Element .............................. --> + +<!ENTITY % SVG.style.element "INCLUDE" > +<![%SVG.style.element;[ +<!ENTITY % SVG.style.content "( #PCDATA )" > +<!ELEMENT %SVG.style.qname; %SVG.style.content; > +<!-- end of SVG.style.element -->]]> + +<!ENTITY % SVG.style.attlist "INCLUDE" > +<![%SVG.style.attlist;[ +<!ATTLIST %SVG.style.qname; + xml:space ( preserve ) #FIXED 'preserve' + %SVG.Core.attrib; + type %ContentType.datatype; #REQUIRED + media %MediaDesc.datatype; #IMPLIED + title %Text.datatype; #IMPLIED +> +<!-- end of SVG.style.attlist -->]]> + +<!-- end of svg-style.mod --> +]]> + +<!-- Shape Module ................................................ --> +<!ENTITY % svg-shape.module "INCLUDE" > +<![%svg-shape.module;[ +<!ENTITY % svg-shape.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Shape//EN" + "svg-shape.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Shape Module .................................................. --> +<!-- file: svg-shape.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Shape//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-shape.mod" + + ....................................................................... --> + +<!-- Shape + + path, rect, circle, line, ellipse, polyline, polygon + + This module declares markup to provide support for graphical shapes. +--> + +<!-- a list of points --> +<!ENTITY % Points.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.path.qname "path" > +<!ENTITY % SVG.rect.qname "rect" > +<!ENTITY % SVG.circle.qname "circle" > +<!ENTITY % SVG.line.qname "line" > +<!ENTITY % SVG.ellipse.qname "ellipse" > +<!ENTITY % SVG.polyline.qname "polyline" > +<!ENTITY % SVG.polygon.qname "polygon" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Shape.class ................................... --> + +<!ENTITY % SVG.Shape.extra.class "" > + +<!ENTITY % SVG.Shape.class + "| %SVG.path.qname; | %SVG.rect.qname; | %SVG.circle.qname; + | %SVG.line.qname; | %SVG.ellipse.qname; | %SVG.polyline.qname; + | %SVG.polygon.qname; %SVG.Shape.extra.class;" +> + +<!-- path: Path Element ................................ --> + +<!ENTITY % SVG.path.element "INCLUDE" > +<![%SVG.path.element;[ +<!ENTITY % SVG.path.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.path.qname; %SVG.path.content; > +<!-- end of SVG.path.element -->]]> + +<!ENTITY % SVG.path.attlist "INCLUDE" > +<![%SVG.path.attlist;[ +<!ATTLIST %SVG.path.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + d %PathData.datatype; #REQUIRED + pathLength %Number.datatype; #IMPLIED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.path.attlist -->]]> + +<!-- rect: Rectangle Element ........................... --> + +<!ENTITY % SVG.rect.element "INCLUDE" > +<![%SVG.rect.element;[ +<!ENTITY % SVG.rect.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.rect.qname; %SVG.rect.content; > +<!-- end of SVG.rect.element -->]]> + +<!ENTITY % SVG.rect.attlist "INCLUDE" > +<![%SVG.rect.attlist;[ +<!ATTLIST %SVG.rect.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #REQUIRED + height %Length.datatype; #REQUIRED + rx %Length.datatype; #IMPLIED + ry %Length.datatype; #IMPLIED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.rect.attlist -->]]> + +<!-- circle: Circle Element ............................ --> + +<!ENTITY % SVG.circle.element "INCLUDE" > +<![%SVG.circle.element;[ +<!ENTITY % SVG.circle.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.circle.qname; %SVG.circle.content; > +<!-- end of SVG.circle.element -->]]> + +<!ENTITY % SVG.circle.attlist "INCLUDE" > +<![%SVG.circle.attlist;[ +<!ATTLIST %SVG.circle.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + cx %Coordinate.datatype; #IMPLIED + cy %Coordinate.datatype; #IMPLIED + r %Length.datatype; #REQUIRED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.circle.attlist -->]]> + +<!-- line: Line Element ................................ --> + +<!ENTITY % SVG.line.element "INCLUDE" > +<![%SVG.line.element;[ +<!ENTITY % SVG.line.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.line.qname; %SVG.line.content; > +<!-- end of SVG.line.element -->]]> + +<!ENTITY % SVG.line.attlist "INCLUDE" > +<![%SVG.line.attlist;[ +<!ATTLIST %SVG.line.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + x1 %Coordinate.datatype; #IMPLIED + y1 %Coordinate.datatype; #IMPLIED + x2 %Coordinate.datatype; #IMPLIED + y2 %Coordinate.datatype; #IMPLIED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.line.attlist -->]]> + +<!-- ellipse: Ellipse Element .......................... --> + +<!ENTITY % SVG.ellipse.element "INCLUDE" > +<![%SVG.ellipse.element;[ +<!ENTITY % SVG.ellipse.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.ellipse.qname; %SVG.ellipse.content; > +<!-- end of SVG.ellipse.element -->]]> + +<!ENTITY % SVG.ellipse.attlist "INCLUDE" > +<![%SVG.ellipse.attlist;[ +<!ATTLIST %SVG.ellipse.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + cx %Coordinate.datatype; #IMPLIED + cy %Coordinate.datatype; #IMPLIED + rx %Length.datatype; #REQUIRED + ry %Length.datatype; #REQUIRED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.ellipse.attlist -->]]> + +<!-- polyline: Polyline Element ........................ --> + +<!ENTITY % SVG.polyline.element "INCLUDE" > +<![%SVG.polyline.element;[ +<!ENTITY % SVG.polyline.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.polyline.qname; %SVG.polyline.content; > +<!-- end of SVG.polyline.element -->]]> + +<!ENTITY % SVG.polyline.attlist "INCLUDE" > +<![%SVG.polyline.attlist;[ +<!ATTLIST %SVG.polyline.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + points %Points.datatype; #REQUIRED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.polyline.attlist -->]]> + +<!-- polygon: Polygon Element .......................... --> + +<!ENTITY % SVG.polygon.element "INCLUDE" > +<![%SVG.polygon.element;[ +<!ENTITY % SVG.polygon.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.polygon.qname; %SVG.polygon.content; > +<!-- end of SVG.polygon.element -->]]> + +<!ENTITY % SVG.polygon.attlist "INCLUDE" > +<![%SVG.polygon.attlist;[ +<!ATTLIST %SVG.polygon.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + points %Points.datatype; #REQUIRED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.polygon.attlist -->]]> + +<!-- end of svg-shape.mod --> +]]> + +<!-- Text Module ................................................. --> +<!ENTITY % svg-text.module "INCLUDE" > +<![%svg-text.module;[ +<!ENTITY % svg-text.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Text//EN" + "svg-text.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Text Module ................................................... --> +<!-- file: svg-text.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Text//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-text.mod" + + ....................................................................... --> + +<!-- Text + + text, tspan, tref, textPath, altGlyph, altGlyphDef, altGlyphItem, + glyphRef + + This module declares markup to provide support for alternate glyph. +--> + +<!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) --> +<!ENTITY % BaselineShiftValue.datatype "CDATA" > + +<!-- 'font-family' property/attribute value (i.e., list of fonts) --> +<!ENTITY % FontFamilyValue.datatype "CDATA" > + +<!-- 'font-size' property/attribute value --> +<!ENTITY % FontSizeValue.datatype "CDATA" > + +<!-- 'font-size-adjust' property/attribute value --> +<!ENTITY % FontSizeAdjustValue.datatype "CDATA" > + +<!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) --> +<!ENTITY % GlyphOrientationHorizontalValue.datatype "CDATA" > + +<!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) --> +<!ENTITY % GlyphOrientationVerticalValue.datatype "CDATA" > + +<!-- 'kerning' property/attribute value (e.g., 'auto', <length>) --> +<!ENTITY % KerningValue.datatype "CDATA" > + +<!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., 'normal', <length>) --> +<!ENTITY % SpacingValue.datatype "CDATA" > + +<!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') --> +<!ENTITY % TextDecorationValue.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.text.qname "text" > +<!ENTITY % SVG.tspan.qname "tspan" > +<!ENTITY % SVG.tref.qname "tref" > +<!ENTITY % SVG.textPath.qname "textPath" > +<!ENTITY % SVG.altGlyph.qname "altGlyph" > +<!ENTITY % SVG.altGlyphDef.qname "altGlyphDef" > +<!ENTITY % SVG.altGlyphItem.qname "altGlyphItem" > +<!ENTITY % SVG.glyphRef.qname "glyphRef" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.XLinkRequired.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Text.class .................................... --> + +<!ENTITY % SVG.Text.extra.class "" > + +<!ENTITY % SVG.Text.class + "| %SVG.text.qname; | %SVG.altGlyphDef.qname; %SVG.Text.extra.class;" +> + +<!-- SVG.TextContent.class ............................. --> + +<!ENTITY % SVG.TextContent.extra.class "" > + +<!ENTITY % SVG.TextContent.class + "| %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.textPath.qname; + | %SVG.altGlyph.qname; %SVG.TextContent.extra.class;" +> + +<!-- SVG.Text.attrib ................................... --> + +<!ENTITY % SVG.Text.extra.attrib "" > + +<!ENTITY % SVG.Text.attrib + "writing-mode ( lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit ) #IMPLIED + %SVG.Text.extra.attrib;" +> + +<!-- SVG.TextContent.attrib ............................ --> + +<!ENTITY % SVG.TextContent.extra.attrib "" > + +<!ENTITY % SVG.TextContent.attrib + "alignment-baseline ( auto | baseline | before-edge | text-before-edge | + middle | central | after-edge | text-after-edge | + ideographic | alphabetic | hanging | mathematical | + inherit ) #IMPLIED + baseline-shift %BaselineShiftValue.datatype; #IMPLIED + direction ( ltr | rtl | inherit ) #IMPLIED + dominant-baseline ( auto | use-script | no-change | reset-size | + ideographic | alphabetic | hanging | mathematical | + central | middle | text-after-edge | text-before-edge | + inherit ) #IMPLIED + glyph-orientation-horizontal %GlyphOrientationHorizontalValue.datatype; + #IMPLIED + glyph-orientation-vertical %GlyphOrientationVerticalValue.datatype; + #IMPLIED + kerning %KerningValue.datatype; #IMPLIED + letter-spacing %SpacingValue.datatype; #IMPLIED + text-anchor ( start | middle | end | inherit ) #IMPLIED + text-decoration %TextDecorationValue.datatype; #IMPLIED + unicode-bidi ( normal | embed | bidi-override | inherit ) #IMPLIED + word-spacing %SpacingValue.datatype; #IMPLIED + %SVG.TextContent.extra.attrib;" +> + +<!-- SVG.Font.attrib ................................... --> + +<!ENTITY % SVG.Font.extra.attrib "" > + +<!ENTITY % SVG.Font.attrib + "font-family %FontFamilyValue.datatype; #IMPLIED + font-size %FontSizeValue.datatype; #IMPLIED + font-size-adjust %FontSizeAdjustValue.datatype; #IMPLIED + font-stretch ( normal | wider | narrower | ultra-condensed | + extra-condensed | condensed | semi-condensed | + semi-expanded | expanded | extra-expanded | + ultra-expanded | inherit ) #IMPLIED + font-style ( normal | italic | oblique | inherit ) #IMPLIED + font-variant ( normal | small-caps | inherit ) #IMPLIED + font-weight ( normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | + 500 | 600 | 700 | 800 | 900 | inherit ) #IMPLIED + %SVG.Font.extra.attrib;" +> + +<!-- text: Text Element ................................ --> + +<!ENTITY % SVG.text.element "INCLUDE" > +<![%SVG.text.element;[ +<!ENTITY % SVG.text.content + "( #PCDATA | %SVG.Description.class; | %SVG.Animation.class; + %SVG.TextContent.class; %SVG.Hyperlink.class; )*" +> +<!ELEMENT %SVG.text.qname; %SVG.text.content; > +<!-- end of SVG.text.element -->]]> + +<!ENTITY % SVG.text.attlist "INCLUDE" > +<![%SVG.text.attlist;[ +<!ATTLIST %SVG.text.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + x %Coordinates.datatype; #IMPLIED + y %Coordinates.datatype; #IMPLIED + dx %Lengths.datatype; #IMPLIED + dy %Lengths.datatype; #IMPLIED + rotate %Numbers.datatype; #IMPLIED + textLength %Length.datatype; #IMPLIED + lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.text.attlist -->]]> + +<!-- tspan: Text Span Element .......................... --> + +<!ENTITY % SVG.tspan.element "INCLUDE" > +<![%SVG.tspan.element;[ +<!ENTITY % SVG.tspan.content + "( #PCDATA | %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.altGlyph.qname; + | %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; + | %SVG.Description.class; %SVG.Hyperlink.class; )*" +> +<!ELEMENT %SVG.tspan.qname; %SVG.tspan.content; > +<!-- end of SVG.tspan.element -->]]> + +<!ENTITY % SVG.tspan.attlist "INCLUDE" > +<![%SVG.tspan.attlist;[ +<!ATTLIST %SVG.tspan.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + x %Coordinates.datatype; #IMPLIED + y %Coordinates.datatype; #IMPLIED + dx %Lengths.datatype; #IMPLIED + dy %Lengths.datatype; #IMPLIED + rotate %Numbers.datatype; #IMPLIED + textLength %Length.datatype; #IMPLIED + lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED +> +<!-- end of SVG.tspan.attlist -->]]> + +<!-- tref: Text Reference Element ...................... --> + +<!ENTITY % SVG.tref.element "INCLUDE" > +<![%SVG.tref.element;[ +<!ENTITY % SVG.tref.content + "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; + | %SVG.Description.class; )*" +> +<!ELEMENT %SVG.tref.qname; %SVG.tref.content; > +<!-- end of SVG.tref.element -->]]> + +<!ENTITY % SVG.tref.attlist "INCLUDE" > +<![%SVG.tref.attlist;[ +<!ATTLIST %SVG.tref.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.XLinkRequired.attrib; + %SVG.External.attrib; + x %Coordinates.datatype; #IMPLIED + y %Coordinates.datatype; #IMPLIED + dx %Lengths.datatype; #IMPLIED + dy %Lengths.datatype; #IMPLIED + rotate %Numbers.datatype; #IMPLIED + textLength %Length.datatype; #IMPLIED + lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED +> +<!-- end of SVG.tref.attlist -->]]> + +<!-- textPath: Text Path Element ....................... --> + +<!ENTITY % SVG.textPath.element "INCLUDE" > +<![%SVG.textPath.element;[ +<!ENTITY % SVG.textPath.content + "( #PCDATA | %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.altGlyph.qname; + | %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; + | %SVG.Description.class; %SVG.Hyperlink.class; )*" +> +<!ELEMENT %SVG.textPath.qname; %SVG.textPath.content; > +<!-- end of SVG.textPath.element -->]]> + +<!ENTITY % SVG.textPath.attlist "INCLUDE" > +<![%SVG.textPath.attlist;[ +<!ATTLIST %SVG.textPath.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.XLinkRequired.attrib; + %SVG.External.attrib; + startOffset %Length.datatype; #IMPLIED + textLength %Length.datatype; #IMPLIED + lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED + method ( align | stretch ) #IMPLIED + spacing ( auto | exact ) #IMPLIED +> +<!-- end of SVG.textPath.attlist -->]]> + +<!-- altGlyph: Alternate Glyph Element ................. --> + +<!ENTITY % SVG.altGlyph.element "INCLUDE" > +<![%SVG.altGlyph.element;[ +<!ENTITY % SVG.altGlyph.content + "( #PCDATA )" +> +<!ELEMENT %SVG.altGlyph.qname; %SVG.altGlyph.content; > +<!-- end of SVG.altGlyph.element -->]]> + +<!ENTITY % SVG.altGlyph.attlist "INCLUDE" > +<![%SVG.altGlyph.attlist;[ +<!ATTLIST %SVG.altGlyph.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + x %Coordinates.datatype; #IMPLIED + y %Coordinates.datatype; #IMPLIED + dx %Lengths.datatype; #IMPLIED + dy %Lengths.datatype; #IMPLIED + glyphRef CDATA #IMPLIED + format CDATA #IMPLIED + rotate %Numbers.datatype; #IMPLIED +> +<!-- end of SVG.altGlyph.attlist -->]]> + +<!-- altGlyphDef: Alternate Glyph Definition Element ... --> + +<!ENTITY % SVG.altGlyphDef.element "INCLUDE" > +<![%SVG.altGlyphDef.element;[ +<!ENTITY % SVG.altGlyphDef.content + "( %SVG.glyphRef.qname;+ | %SVG.altGlyphItem.qname;+ )" +> +<!ELEMENT %SVG.altGlyphDef.qname; %SVG.altGlyphDef.content; > +<!-- end of SVG.altGlyphDef.element -->]]> + +<!ENTITY % SVG.altGlyphDef.attlist "INCLUDE" > +<![%SVG.altGlyphDef.attlist;[ +<!ATTLIST %SVG.altGlyphDef.qname; + %SVG.Core.attrib; +> +<!-- end of SVG.altGlyphDef.attlist -->]]> + +<!-- altGlyphItem: Alternate Glyph Item Element ........ --> + +<!ENTITY % SVG.altGlyphItem.element "INCLUDE" > +<![%SVG.altGlyphItem.element;[ +<!ENTITY % SVG.altGlyphItem.content + "( %SVG.glyphRef.qname;+ )" +> +<!ELEMENT %SVG.altGlyphItem.qname; %SVG.altGlyphItem.content; > +<!-- end of SVG.altGlyphItem.element -->]]> + +<!ENTITY % SVG.altGlyphItem.attlist "INCLUDE" > +<![%SVG.altGlyphItem.attlist;[ +<!ATTLIST %SVG.altGlyphItem.qname; + %SVG.Core.attrib; +> +<!-- end of SVG.altGlyphItem.attlist -->]]> + +<!-- glyphRef: Glyph Reference Element ................. --> + +<!ENTITY % SVG.glyphRef.element "INCLUDE" > +<![%SVG.glyphRef.element;[ +<!ENTITY % SVG.glyphRef.content "EMPTY" > +<!ELEMENT %SVG.glyphRef.qname; %SVG.glyphRef.content; > +<!-- end of SVG.glyphRef.element -->]]> + +<!ENTITY % SVG.glyphRef.attlist "INCLUDE" > +<![%SVG.glyphRef.attlist;[ +<!ATTLIST %SVG.glyphRef.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Font.attrib; + %SVG.XLink.attrib; + x %Number.datatype; #IMPLIED + y %Number.datatype; #IMPLIED + dx %Number.datatype; #IMPLIED + dy %Number.datatype; #IMPLIED + glyphRef CDATA #IMPLIED + format CDATA #IMPLIED +> +<!-- end of SVG.glyphRef.attlist -->]]> + +<!-- end of svg-text.mod --> +]]> + +<!-- Marker Module ............................................... --> +<!ENTITY % svg-marker.module "INCLUDE" > +<![%svg-marker.module;[ +<!ENTITY % svg-marker.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Marker//EN" + "svg-marker.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Marker Module ................................................. --> +<!-- file: svg-marker.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Marker//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-marker.mod" + + ....................................................................... --> + +<!-- Marker + + marker + + This module declares markup to provide support for marker. +--> + +<!-- 'marker' property/attribute value (e.g., 'none', <uri>) --> +<!ENTITY % MarkerValue.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.marker.qname "marker" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Marker.class .................................. --> + +<!ENTITY % SVG.Marker.extra.class "" > + +<!ENTITY % SVG.Marker.class + "| %SVG.marker.qname; %SVG.Marker.extra.class;" +> + +<!-- SVG.Marker.attrib ................................. --> + +<!ENTITY % SVG.Marker.extra.attrib "" > + +<!ENTITY % SVG.Marker.attrib + "marker-start %MarkerValue.datatype; #IMPLIED + marker-mid %MarkerValue.datatype; #IMPLIED + marker-end %MarkerValue.datatype; #IMPLIED + %SVG.Marker.extra.attrib;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- marker: Marker Element ............................ --> + +<!ENTITY % SVG.marker.element "INCLUDE" > +<![%SVG.marker.element;[ +<!ENTITY % SVG.marker.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.marker.qname; %SVG.marker.content; > +<!-- end of SVG.marker.element -->]]> + +<!ENTITY % SVG.marker.attlist "INCLUDE" > +<![%SVG.marker.attlist;[ +<!ATTLIST %SVG.marker.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.External.attrib; + refX %Coordinate.datatype; #IMPLIED + refY %Coordinate.datatype; #IMPLIED + markerUnits ( strokeWidth | userSpaceOnUse ) #IMPLIED + markerWidth %Length.datatype; #IMPLIED + markerHeight %Length.datatype; #IMPLIED + orient CDATA #IMPLIED + viewBox %ViewBoxSpec.datatype; #IMPLIED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' +> +<!-- end of SVG.marker.attlist -->]]> + +<!-- end of svg-marker.mod --> +]]> + +<!-- Color Profile Module ........................................ --> +<!ENTITY % svg-profile.module "INCLUDE" > +<![%svg-profile.module;[ +<!ENTITY % svg-profile.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Color Profile//EN" + "svg-profile.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Color Profile Module .......................................... --> +<!-- file: svg-profile.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Color Profile//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-profile.mod" + + ....................................................................... --> + +<!-- Color Profile + + color-profile + + This module declares markup to provide support for color profile. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.color-profile.qname "color-profile" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > + +<!-- SVG.Profile.class ................................. --> + +<!ENTITY % SVG.Profile.extra.class "" > + +<!ENTITY % SVG.Profile.class + "| %SVG.color-profile.qname; %SVG.Profile.extra.class;" +> + +<!-- SVG.Profile.attrib ................................ --> + +<!ENTITY % SVG.Profile.extra.attrib "" > + +<!ENTITY % SVG.Profile.attrib + "color-profile CDATA #IMPLIED + %SVG.Profile.extra.attrib;" +> + +<!-- color-profile: Color Profile Element .............. --> + +<!ENTITY % SVG.color-profile.element "INCLUDE" > +<![%SVG.color-profile.element;[ +<!ENTITY % SVG.color-profile.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.color-profile.qname; %SVG.color-profile.content; > +<!-- end of SVG.color-profile.element -->]]> + +<!ENTITY % SVG.color-profile.attlist "INCLUDE" > +<![%SVG.color-profile.attlist;[ +<!ATTLIST %SVG.color-profile.qname; + %SVG.Core.attrib; + %SVG.XLink.attrib; + local CDATA #IMPLIED + name CDATA #REQUIRED + rendering-intent ( auto | perceptual | relative-colorimetric | saturation | + absolute-colorimetric ) 'auto' +> +<!-- end of SVG.color-profile.attlist -->]]> + +<!-- end of svg-profile.mod --> +]]> + +<!-- Gradient Module ............................................. --> +<!ENTITY % svg-gradient.module "INCLUDE" > +<![%svg-gradient.module;[ +<!ENTITY % svg-gradient.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Gradient//EN" + "svg-gradient.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Gradient Module ............................................... --> +<!-- file: svg-gradient.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Gradient//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-gradient.mod" + + ....................................................................... --> + +<!-- Gradient + + linearGradient, radialGradient, stop + + This module declares markup to provide support for gradient fill. +--> + +<!-- a <number> or a <percentage> --> +<!ENTITY % NumberOrPercentage.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.linearGradient.qname "linearGradient" > +<!ENTITY % SVG.radialGradient.qname "radialGradient" > +<!ENTITY % SVG.stop.qname "stop" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Gradient.class ................................ --> + +<!ENTITY % SVG.Gradient.extra.class "" > + +<!ENTITY % SVG.Gradient.class + "| %SVG.linearGradient.qname; | %SVG.radialGradient.qname; + %SVG.Gradient.extra.class;" +> + +<!-- SVG.Gradient.attrib ............................... --> + +<!ENTITY % SVG.Gradient.extra.attrib "" > + +<!ENTITY % SVG.Gradient.attrib + "stop-color %SVGColor.datatype; #IMPLIED + stop-opacity %OpacityValue.datatype; #IMPLIED + %SVG.Gradient.extra.attrib;" +> + +<!-- linearGradient: Linear Gradient Element ........... --> + +<!ENTITY % SVG.linearGradient.element "INCLUDE" > +<![%SVG.linearGradient.element;[ +<!ENTITY % SVG.linearGradient.content + "(( %SVG.Description.class; )*, ( %SVG.stop.qname; | %SVG.animate.qname; + | %SVG.set.qname; | %SVG.animateTransform.qname; )*)" +> +<!ELEMENT %SVG.linearGradient.qname; %SVG.linearGradient.content; > +<!-- end of SVG.linearGradient.element -->]]> + +<!ENTITY % SVG.linearGradient.attlist "INCLUDE" > +<![%SVG.linearGradient.attlist;[ +<!ATTLIST %SVG.linearGradient.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.Gradient.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + x1 %Coordinate.datatype; #IMPLIED + y1 %Coordinate.datatype; #IMPLIED + x2 %Coordinate.datatype; #IMPLIED + y2 %Coordinate.datatype; #IMPLIED + gradientUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + gradientTransform %TransformList.datatype; #IMPLIED + spreadMethod ( pad | reflect | repeat ) #IMPLIED +> +<!-- end of SVG.linearGradient.attlist -->]]> + +<!-- radialGradient: Radial Gradient Element ........... --> + +<!ENTITY % SVG.radialGradient.element "INCLUDE" > +<![%SVG.radialGradient.element;[ +<!ENTITY % SVG.radialGradient.content + "(( %SVG.Description.class; )*, ( %SVG.stop.qname; | %SVG.animate.qname; + | %SVG.set.qname; | %SVG.animateTransform.qname; )*)" +> +<!ELEMENT %SVG.radialGradient.qname; %SVG.radialGradient.content; > +<!-- end of SVG.radialGradient.element -->]]> + +<!ENTITY % SVG.radialGradient.attlist "INCLUDE" > +<![%SVG.radialGradient.attlist;[ +<!ATTLIST %SVG.radialGradient.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.Gradient.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + cx %Coordinate.datatype; #IMPLIED + cy %Coordinate.datatype; #IMPLIED + r %Length.datatype; #IMPLIED + fx %Coordinate.datatype; #IMPLIED + fy %Coordinate.datatype; #IMPLIED + gradientUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + gradientTransform %TransformList.datatype; #IMPLIED + spreadMethod ( pad | reflect | repeat ) #IMPLIED +> +<!-- end of SVG.radialGradient.attlist -->]]> + +<!-- stop: Stop Element ................................ --> + +<!ENTITY % SVG.stop.element "INCLUDE" > +<![%SVG.stop.element;[ +<!ENTITY % SVG.stop.content + "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; )*" +> +<!ELEMENT %SVG.stop.qname; %SVG.stop.content; > +<!-- end of SVG.stop.element -->]]> + +<!ENTITY % SVG.stop.attlist "INCLUDE" > +<![%SVG.stop.attlist;[ +<!ATTLIST %SVG.stop.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.Gradient.attrib; + offset %NumberOrPercentage.datatype; #REQUIRED +> +<!-- end of SVG.stop.attlist -->]]> + +<!-- end of svg-gradient.mod --> +]]> + +<!-- Pattern Module .............................................. --> +<!ENTITY % svg-pattern.module "INCLUDE" > +<![%svg-pattern.module;[ +<!ENTITY % svg-pattern.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Pattern//EN" + "svg-pattern.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Pattern Module ................................................ --> +<!-- file: svg-pattern.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Pattern//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-pattern.mod" + + ....................................................................... --> + +<!-- Pattern + + pattern + + This module declares markup to provide support for pattern fill. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.pattern.qname "pattern" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Pattern.class ................................. --> + +<!ENTITY % SVG.Pattern.extra.class "" > + +<!ENTITY % SVG.Pattern.class + "| %SVG.pattern.qname; %SVG.Pattern.extra.class;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- pattern: Pattern Element .......................... --> + +<!ENTITY % SVG.pattern.element "INCLUDE" > +<![%SVG.pattern.element;[ +<!ENTITY % SVG.pattern.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.pattern.qname; %SVG.pattern.content; > +<!-- end of SVG.pattern.element -->]]> + +<!ENTITY % SVG.pattern.attlist "INCLUDE" > +<![%SVG.pattern.attlist;[ +<!ATTLIST %SVG.pattern.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + patternUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + patternContentUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + patternTransform %TransformList.datatype; #IMPLIED + viewBox %ViewBoxSpec.datatype; #IMPLIED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' +> +<!-- end of SVG.pattern.attlist -->]]> + +<!-- end of svg-pattern.mod --> +]]> + +<!-- Clip Module ................................................. --> +<!ENTITY % svg-clip.module "INCLUDE" > +<![%svg-clip.module;[ +<!ENTITY % svg-clip.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Clip//EN" + "svg-clip.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Clip Module ................................................... --> +<!-- file: svg-clip.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Clip//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-clip.mod" + + ....................................................................... --> + +<!-- Clip + + clipPath + + This module declares markup to provide support for clipping. +--> + +<!-- 'clip-path' property/attribute value (e.g., 'none', <uri>) --> +<!ENTITY % ClipPathValue.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.clipPath.qname "clipPath" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Clip.class .................................... --> + +<!ENTITY % SVG.Clip.extra.class "" > + +<!ENTITY % SVG.Clip.class + "| %SVG.clipPath.qname; %SVG.Clip.extra.class;" +> + +<!-- SVG.Clip.attrib ................................... --> + +<!ENTITY % SVG.Clip.extra.attrib "" > + +<!ENTITY % SVG.Clip.attrib + "clip-path %ClipPathValue.datatype; #IMPLIED + clip-rule %ClipFillRule.datatype; #IMPLIED + %SVG.Clip.extra.attrib;" +> + +<!-- clipPath: Clip Path Element ....................... --> + +<!ENTITY % SVG.clipPath.element "INCLUDE" > +<![%SVG.clipPath.element;[ +<!ENTITY % SVG.clipPath.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; %SVG.Use.class; + %SVG.Shape.class; %SVG.Text.class; )*)" +> +<!ELEMENT %SVG.clipPath.qname; %SVG.clipPath.content; > +<!-- end of SVG.clipPath.element -->]]> + +<!ENTITY % SVG.clipPath.attlist "INCLUDE" > +<![%SVG.clipPath.attlist;[ +<!ATTLIST %SVG.clipPath.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + transform %TransformList.datatype; #IMPLIED + clipPathUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED +> +<!-- end of SVG.clipPath.attlist -->]]> + +<!-- end of svg-clip.mod --> +]]> + +<!-- Mask Module ................................................. --> +<!ENTITY % svg-mask.module "INCLUDE" > +<![%svg-mask.module;[ +<!ENTITY % svg-mask.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Mask//EN" + "svg-mask.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Mask Module ................................................... --> +<!-- file: svg-mask.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Mask//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-mask.mod" + + ....................................................................... --> + +<!-- Mask + + mask + + This module declares markup to provide support for masking. +--> + +<!-- 'mask' property/attribute value (e.g., 'none', <uri>) --> +<!ENTITY % MaskValue.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.mask.qname "mask" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Mask.class .................................... --> + +<!ENTITY % SVG.Mask.extra.class "" > + +<!ENTITY % SVG.Mask.class + "| %SVG.mask.qname; %SVG.Mask.extra.class;" +> + +<!-- SVG.Mask.attrib ................................... --> + +<!ENTITY % SVG.Mask.extra.attrib "" > + +<!ENTITY % SVG.Mask.attrib + "mask %MaskValue.datatype; #IMPLIED + %SVG.Mask.extra.attrib;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- mask: Mask Element ................................ --> + +<!ENTITY % SVG.mask.element "INCLUDE" > +<![%SVG.mask.element;[ +<!ENTITY % SVG.mask.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.mask.qname; %SVG.mask.content; > +<!-- end of SVG.mask.element -->]]> + +<!ENTITY % SVG.mask.attlist "INCLUDE" > +<![%SVG.mask.attlist;[ +<!ATTLIST %SVG.mask.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + maskUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + maskContentUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED +> +<!-- end of SVG.mask.attlist -->]]> + +<!-- end of svg-mask.mod --> +]]> + +<!-- Filter Module ............................................... --> +<!ENTITY % svg-filter.module "INCLUDE" > +<![%svg-filter.module;[ +<!ENTITY % svg-filter.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Filter//EN" + "svg-filter.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Filter Module ................................................. --> +<!-- file: svg-filter.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Filter//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-filter.mod" + + ....................................................................... --> + +<!-- Filter + + filter, feBlend, feColorMatrix, feComponentTransfer, feComposite, + feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feFlood, + feGaussianBlur, feImage, feMerge, feMergeNode, feMorphology, feOffset, + feSpecularLighting, feTile, feTurbulence, feDistantLight, fePointLight, + feSpotLight, feFuncR, feFuncG, feFuncB, feFuncA + + This module declares markup to provide support for filter effect. +--> + +<!-- 'filter' property/attribute value (e.g., 'none', <uri>) --> +<!ENTITY % FilterValue.datatype "CDATA" > + +<!-- list of <number>s, but at least one and at most two --> +<!ENTITY % NumberOptionalNumber.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.filter.qname "filter" > +<!ENTITY % SVG.feBlend.qname "feBlend" > +<!ENTITY % SVG.feColorMatrix.qname "feColorMatrix" > +<!ENTITY % SVG.feComponentTransfer.qname "feComponentTransfer" > +<!ENTITY % SVG.feComposite.qname "feComposite" > +<!ENTITY % SVG.feConvolveMatrix.qname "feConvolveMatrix" > +<!ENTITY % SVG.feDiffuseLighting.qname "feDiffuseLighting" > +<!ENTITY % SVG.feDisplacementMap.qname "feDisplacementMap" > +<!ENTITY % SVG.feFlood.qname "feFlood" > +<!ENTITY % SVG.feGaussianBlur.qname "feGaussianBlur" > +<!ENTITY % SVG.feImage.qname "feImage" > +<!ENTITY % SVG.feMerge.qname "feMerge" > +<!ENTITY % SVG.feMergeNode.qname "feMergeNode" > +<!ENTITY % SVG.feMorphology.qname "feMorphology" > +<!ENTITY % SVG.feOffset.qname "feOffset" > +<!ENTITY % SVG.feSpecularLighting.qname "feSpecularLighting" > +<!ENTITY % SVG.feTile.qname "feTile" > +<!ENTITY % SVG.feTurbulence.qname "feTurbulence" > +<!ENTITY % SVG.feDistantLight.qname "feDistantLight" > +<!ENTITY % SVG.fePointLight.qname "fePointLight" > +<!ENTITY % SVG.feSpotLight.qname "feSpotLight" > +<!ENTITY % SVG.feFuncR.qname "feFuncR" > +<!ENTITY % SVG.feFuncG.qname "feFuncG" > +<!ENTITY % SVG.feFuncB.qname "feFuncB" > +<!ENTITY % SVG.feFuncA.qname "feFuncA" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.XLinkEmbed.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Filter.class .................................. --> + +<!ENTITY % SVG.Filter.extra.class "" > + +<!ENTITY % SVG.Filter.class + "| %SVG.filter.qname; %SVG.Filter.extra.class;" +> + +<!-- SVG.FilterPrimitive.class ......................... --> + +<!ENTITY % SVG.FilterPrimitive.extra.class "" > + +<!ENTITY % SVG.FilterPrimitive.class + "| %SVG.feBlend.qname; | %SVG.feColorMatrix.qname; + | %SVG.feComponentTransfer.qname; | %SVG.feComposite.qname; + | %SVG.feConvolveMatrix.qname; | %SVG.feDiffuseLighting.qname; + | %SVG.feDisplacementMap.qname; | %SVG.feFlood.qname; + | %SVG.feGaussianBlur.qname; | %SVG.feImage.qname; | %SVG.feMerge.qname; + | %SVG.feMorphology.qname; | %SVG.feOffset.qname; + | %SVG.feSpecularLighting.qname; | %SVG.feTile.qname; + | %SVG.feTurbulence.qname; %SVG.FilterPrimitive.extra.class;" +> + +<!-- SVG.Filter.attrib ................................. --> + +<!ENTITY % SVG.Filter.extra.attrib "" > + +<!ENTITY % SVG.Filter.attrib + "filter %FilterValue.datatype; #IMPLIED + %SVG.Filter.extra.attrib;" +> + +<!-- SVG.FilterColor.attrib ............................ --> + +<!ENTITY % SVG.FilterColor.extra.attrib "" > + +<!ENTITY % SVG.FilterColor.attrib + "color-interpolation-filters ( auto | sRGB | linearRGB | inherit ) + #IMPLIED + %SVG.FilterColor.extra.attrib;" +> + +<!-- SVG.FilterPrimitive.attrib ........................ --> + +<!ENTITY % SVG.FilterPrimitive.extra.attrib "" > + +<!ENTITY % SVG.FilterPrimitive.attrib + "x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + result CDATA #IMPLIED + %SVG.FilterPrimitive.extra.attrib;" +> + +<!-- SVG.FilterPrimitiveWithIn.attrib .................. --> + +<!ENTITY % SVG.FilterPrimitiveWithIn.extra.attrib "" > + +<!ENTITY % SVG.FilterPrimitiveWithIn.attrib + "%SVG.FilterPrimitive.attrib; + in CDATA #IMPLIED + %SVG.FilterPrimitiveWithIn.extra.attrib;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- filter: Filter Element ............................ --> + +<!ENTITY % SVG.filter.element "INCLUDE" > +<![%SVG.filter.element;[ +<!ENTITY % SVG.filter.content + "(( %SVG.Description.class; )*, ( %SVG.animate.qname; | %SVG.set.qname; + %SVG.FilterPrimitive.class; )*)" +> +<!ELEMENT %SVG.filter.qname; %SVG.filter.content; > +<!-- end of SVG.filter.element -->]]> + +<!ENTITY % SVG.filter.attlist "INCLUDE" > +<![%SVG.filter.attlist;[ +<!ATTLIST %SVG.filter.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + filterRes %NumberOptionalNumber.datatype; #IMPLIED + filterUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + primitiveUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED +> +<!-- end of SVG.filter.attlist -->]]> + +<!-- feBlend: Filter Effect Blend Element .............. --> + +<!ENTITY % SVG.feBlend.element "INCLUDE" > +<![%SVG.feBlend.element;[ +<!ENTITY % SVG.feBlend.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feBlend.qname; %SVG.feBlend.content; > +<!-- end of SVG.feBlend.element -->]]> + +<!ENTITY % SVG.feBlend.attlist "INCLUDE" > +<![%SVG.feBlend.attlist;[ +<!ATTLIST %SVG.feBlend.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + in2 CDATA #REQUIRED + mode ( normal | multiply | screen | darken | lighten ) 'normal' +> +<!-- end of SVG.feBlend.attlist -->]]> + +<!-- feColorMatrix: Filter Effect Color Matrix Element . --> + +<!ENTITY % SVG.feColorMatrix.element "INCLUDE" > +<![%SVG.feColorMatrix.element;[ +<!ENTITY % SVG.feColorMatrix.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feColorMatrix.qname; %SVG.feColorMatrix.content; > +<!-- end of SVG.feColorMatrix.element -->]]> + +<!ENTITY % SVG.feColorMatrix.attlist "INCLUDE" > +<![%SVG.feColorMatrix.attlist;[ +<!ATTLIST %SVG.feColorMatrix.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + type ( matrix | saturate | hueRotate | luminanceToAlpha ) 'matrix' + values CDATA #IMPLIED +> +<!-- end of SVG.feColorMatrix.attlist -->]]> + +<!-- feComponentTransfer: Filter Effect Component Transfer Element --> + +<!ENTITY % SVG.feComponentTransfer.element "INCLUDE" > +<![%SVG.feComponentTransfer.element;[ +<!ENTITY % SVG.feComponentTransfer.content + "( %SVG.feFuncR.qname;?, %SVG.feFuncG.qname;?, %SVG.feFuncB.qname;?, + %SVG.feFuncA.qname;? )" +> +<!ELEMENT %SVG.feComponentTransfer.qname; %SVG.feComponentTransfer.content; > +<!-- end of SVG.feComponentTransfer.element -->]]> + +<!ENTITY % SVG.feComponentTransfer.attlist "INCLUDE" > +<![%SVG.feComponentTransfer.attlist;[ +<!ATTLIST %SVG.feComponentTransfer.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; +> +<!-- end of SVG.feComponentTransfer.attlist -->]]> + +<!-- feComposite: Filter Effect Composite Element ...... --> + +<!ENTITY % SVG.feComposite.element "INCLUDE" > +<![%SVG.feComposite.element;[ +<!ENTITY % SVG.feComposite.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feComposite.qname; %SVG.feComposite.content; > +<!-- end of SVG.feComposite.element -->]]> + +<!ENTITY % SVG.feComposite.attlist "INCLUDE" > +<![%SVG.feComposite.attlist;[ +<!ATTLIST %SVG.feComposite.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + in2 CDATA #REQUIRED + operator ( over | in | out | atop | xor | arithmetic ) 'over' + k1 %Number.datatype; #IMPLIED + k2 %Number.datatype; #IMPLIED + k3 %Number.datatype; #IMPLIED + k4 %Number.datatype; #IMPLIED +> +<!-- end of SVG.feComposite.attlist -->]]> + +<!-- feConvolveMatrix: Filter Effect Convolve Matrix Element --> + +<!ENTITY % SVG.feConvolveMatrix.element "INCLUDE" > +<![%SVG.feConvolveMatrix.element;[ +<!ENTITY % SVG.feConvolveMatrix.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feConvolveMatrix.qname; %SVG.feConvolveMatrix.content; > +<!-- end of SVG.feConvolveMatrix.element -->]]> + +<!ENTITY % SVG.feConvolveMatrix.attlist "INCLUDE" > +<![%SVG.feConvolveMatrix.attlist;[ +<!ATTLIST %SVG.feConvolveMatrix.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + order %NumberOptionalNumber.datatype; #REQUIRED + kernelMatrix CDATA #REQUIRED + divisor %Number.datatype; #IMPLIED + bias %Number.datatype; #IMPLIED + targetX %Integer.datatype; #IMPLIED + targetY %Integer.datatype; #IMPLIED + edgeMode ( duplicate | wrap | none ) 'duplicate' + kernelUnitLength %NumberOptionalNumber.datatype; #IMPLIED + preserveAlpha %Boolean.datatype; #IMPLIED +> +<!-- end of SVG.feConvolveMatrix.attlist -->]]> + +<!-- feDiffuseLighting: Filter Effect Diffuse Lighting Element --> + +<!ENTITY % SVG.feDiffuseLighting.element "INCLUDE" > +<![%SVG.feDiffuseLighting.element;[ +<!ENTITY % SVG.feDiffuseLighting.content + "(( %SVG.feDistantLight.qname; | %SVG.fePointLight.qname; + | %SVG.feSpotLight.qname; ), ( %SVG.animate.qname; | %SVG.set.qname; + | %SVG.animateColor.qname; )*)" +> +<!ELEMENT %SVG.feDiffuseLighting.qname; %SVG.feDiffuseLighting.content; > +<!-- end of SVG.feDiffuseLighting.element -->]]> + +<!ENTITY % SVG.feDiffuseLighting.attlist "INCLUDE" > +<![%SVG.feDiffuseLighting.attlist;[ +<!ATTLIST %SVG.feDiffuseLighting.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + lighting-color %SVGColor.datatype; #IMPLIED + surfaceScale %Number.datatype; #IMPLIED + diffuseConstant %Number.datatype; #IMPLIED + kernelUnitLength %NumberOptionalNumber.datatype; #IMPLIED +> +<!-- end of SVG.feDiffuseLighting.attlist -->]]> + +<!-- feDisplacementMap: Filter Effect Displacement Map Element --> + +<!ENTITY % SVG.feDisplacementMap.element "INCLUDE" > +<![%SVG.feDisplacementMap.element;[ +<!ENTITY % SVG.feDisplacementMap.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feDisplacementMap.qname; %SVG.feDisplacementMap.content; > +<!-- end of SVG.feDisplacementMap.element -->]]> + +<!ENTITY % SVG.feDisplacementMap.attlist "INCLUDE" > +<![%SVG.feDisplacementMap.attlist;[ +<!ATTLIST %SVG.feDisplacementMap.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + in2 CDATA #REQUIRED + scale %Number.datatype; #IMPLIED + xChannelSelector ( R | G | B | A ) 'A' + yChannelSelector ( R | G | B | A ) 'A' +> +<!-- end of SVG.feDisplacementMap.attlist -->]]> + +<!-- feFlood: Filter Effect Flood Element .............. --> + +<!ENTITY % SVG.feFlood.element "INCLUDE" > +<![%SVG.feFlood.element;[ +<!ENTITY % SVG.feFlood.content + "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; )*" +> +<!ELEMENT %SVG.feFlood.qname; %SVG.feFlood.content; > +<!-- end of SVG.feFlood.element -->]]> + +<!ENTITY % SVG.feFlood.attlist "INCLUDE" > +<![%SVG.feFlood.attlist;[ +<!ATTLIST %SVG.feFlood.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED +> +<!-- end of SVG.feFlood.attlist -->]]> + +<!-- feGaussianBlur: Filter Effect Gaussian Blur Element --> + +<!ENTITY % SVG.feGaussianBlur.element "INCLUDE" > +<![%SVG.feGaussianBlur.element;[ +<!ENTITY % SVG.feGaussianBlur.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feGaussianBlur.qname; %SVG.feGaussianBlur.content; > +<!-- end of SVG.feGaussianBlur.element -->]]> + +<!ENTITY % SVG.feGaussianBlur.attlist "INCLUDE" > +<![%SVG.feGaussianBlur.attlist;[ +<!ATTLIST %SVG.feGaussianBlur.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + stdDeviation %NumberOptionalNumber.datatype; #IMPLIED +> +<!-- end of SVG.feGaussianBlur.attlist -->]]> + +<!-- feImage: Filter Effect Image Element .............. --> + +<!ENTITY % SVG.feImage.element "INCLUDE" > +<![%SVG.feImage.element;[ +<!ENTITY % SVG.feImage.content + "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateTransform.qname; )*" +> +<!ELEMENT %SVG.feImage.qname; %SVG.feImage.content; > +<!-- end of SVG.feImage.element -->]]> + +<!ENTITY % SVG.feImage.attlist "INCLUDE" > +<![%SVG.feImage.attlist;[ +<!ATTLIST %SVG.feImage.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.FilterPrimitive.attrib; + %SVG.XLinkEmbed.attrib; + %SVG.External.attrib; + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' +> +<!-- end of SVG.feImage.attlist -->]]> + +<!-- feMerge: Filter Effect Merge Element .............. --> + +<!ENTITY % SVG.feMerge.element "INCLUDE" > +<![%SVG.feMerge.element;[ +<!ENTITY % SVG.feMerge.content + "( %SVG.feMergeNode.qname; )*" +> +<!ELEMENT %SVG.feMerge.qname; %SVG.feMerge.content; > +<!-- end of SVG.feMerge.element -->]]> + +<!ENTITY % SVG.feMerge.attlist "INCLUDE" > +<![%SVG.feMerge.attlist;[ +<!ATTLIST %SVG.feMerge.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitive.attrib; +> +<!-- end of SVG.feMerge.attlist -->]]> + +<!-- feMergeNode: Filter Effect Merge Node Element ..... --> + +<!ENTITY % SVG.feMergeNode.element "INCLUDE" > +<![%SVG.feMergeNode.element;[ +<!ENTITY % SVG.feMergeNode.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feMergeNode.qname; %SVG.feMergeNode.content; > +<!-- end of SVG.feMergeNode.element -->]]> + +<!ENTITY % SVG.feMergeNode.attlist "INCLUDE" > +<![%SVG.feMergeNode.attlist;[ +<!ATTLIST %SVG.feMergeNode.qname; + %SVG.Core.attrib; + in CDATA #IMPLIED +> +<!-- end of SVG.feMergeNode.attlist -->]]> + +<!-- feMorphology: Filter Effect Morphology Element .... --> + +<!ENTITY % SVG.feMorphology.element "INCLUDE" > +<![%SVG.feMorphology.element;[ +<!ENTITY % SVG.feMorphology.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feMorphology.qname; %SVG.feMorphology.content; > +<!-- end of SVG.feMorphology.element -->]]> + +<!ENTITY % SVG.feMorphology.attlist "INCLUDE" > +<![%SVG.feMorphology.attlist;[ +<!ATTLIST %SVG.feMorphology.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + operator ( erode | dilate ) 'erode' + radius %NumberOptionalNumber.datatype; #IMPLIED +> +<!-- end of SVG.feMorphology.attlist -->]]> + +<!-- feOffset: Filter Effect Offset Element ............ --> + +<!ENTITY % SVG.feOffset.element "INCLUDE" > +<![%SVG.feOffset.element;[ +<!ENTITY % SVG.feOffset.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feOffset.qname; %SVG.feOffset.content; > +<!-- end of SVG.feOffset.element -->]]> + +<!ENTITY % SVG.feOffset.attlist "INCLUDE" > +<![%SVG.feOffset.attlist;[ +<!ATTLIST %SVG.feOffset.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + dx %Number.datatype; #IMPLIED + dy %Number.datatype; #IMPLIED +> +<!-- end of SVG.feOffset.attlist -->]]> + +<!-- feSpecularLighting: Filter Effect Specular Lighting Element --> + +<!ENTITY % SVG.feSpecularLighting.element "INCLUDE" > +<![%SVG.feSpecularLighting.element;[ +<!ENTITY % SVG.feSpecularLighting.content + "(( %SVG.feDistantLight.qname; | %SVG.fePointLight.qname; + | %SVG.feSpotLight.qname; ), ( %SVG.animate.qname; | %SVG.set.qname; + | %SVG.animateColor.qname; )*)" +> +<!ELEMENT %SVG.feSpecularLighting.qname; %SVG.feSpecularLighting.content; > +<!-- end of SVG.feSpecularLighting.element -->]]> + +<!ENTITY % SVG.feSpecularLighting.attlist "INCLUDE" > +<![%SVG.feSpecularLighting.attlist;[ +<!ATTLIST %SVG.feSpecularLighting.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + lighting-color %SVGColor.datatype; #IMPLIED + surfaceScale %Number.datatype; #IMPLIED + specularConstant %Number.datatype; #IMPLIED + specularExponent %Number.datatype; #IMPLIED + kernelUnitLength %NumberOptionalNumber.datatype; #IMPLIED +> +<!-- end of SVG.feSpecularLighting.attlist -->]]> + +<!-- feTile: Filter Effect Tile Element ................ --> + +<!ENTITY % SVG.feTile.element "INCLUDE" > +<![%SVG.feTile.element;[ +<!ENTITY % SVG.feTile.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feTile.qname; %SVG.feTile.content; > +<!-- end of SVG.feTile.element -->]]> + +<!ENTITY % SVG.feTile.attlist "INCLUDE" > +<![%SVG.feTile.attlist;[ +<!ATTLIST %SVG.feTile.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; +> +<!-- end of SVG.feTile.attlist -->]]> + +<!-- feTurbulence: Filter Effect Turbulence Element .... --> + +<!ENTITY % SVG.feTurbulence.element "INCLUDE" > +<![%SVG.feTurbulence.element;[ +<!ENTITY % SVG.feTurbulence.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feTurbulence.qname; %SVG.feTurbulence.content; > +<!-- end of SVG.feTurbulence.element -->]]> + +<!ENTITY % SVG.feTurbulence.attlist "INCLUDE" > +<![%SVG.feTurbulence.attlist;[ +<!ATTLIST %SVG.feTurbulence.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitive.attrib; + baseFrequency %NumberOptionalNumber.datatype; #IMPLIED + numOctaves %Integer.datatype; #IMPLIED + seed %Number.datatype; #IMPLIED + stitchTiles ( stitch | noStitch ) 'noStitch' + type ( fractalNoise | turbulence ) 'turbulence' +> +<!-- end of SVG.feTurbulence.attlist -->]]> + +<!-- feDistantLight: Filter Effect Distant Light Element --> + +<!ENTITY % SVG.feDistantLight.element "INCLUDE" > +<![%SVG.feDistantLight.element;[ +<!ENTITY % SVG.feDistantLight.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feDistantLight.qname; %SVG.feDistantLight.content; > +<!-- end of SVG.feDistantLight.element -->]]> + +<!ENTITY % SVG.feDistantLight.attlist "INCLUDE" > +<![%SVG.feDistantLight.attlist;[ +<!ATTLIST %SVG.feDistantLight.qname; + %SVG.Core.attrib; + azimuth %Number.datatype; #IMPLIED + elevation %Number.datatype; #IMPLIED +> +<!-- end of SVG.feDistantLight.attlist -->]]> + +<!-- fePointLight: Filter Effect Point Light Element ... --> + +<!ENTITY % SVG.fePointLight.element "INCLUDE" > +<![%SVG.fePointLight.element;[ +<!ENTITY % SVG.fePointLight.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.fePointLight.qname; %SVG.fePointLight.content; > +<!-- end of SVG.fePointLight.element -->]]> + +<!ENTITY % SVG.fePointLight.attlist "INCLUDE" > +<![%SVG.fePointLight.attlist;[ +<!ATTLIST %SVG.fePointLight.qname; + %SVG.Core.attrib; + x %Number.datatype; #IMPLIED + y %Number.datatype; #IMPLIED + z %Number.datatype; #IMPLIED +> +<!-- end of SVG.fePointLight.attlist -->]]> + +<!-- feSpotLight: Filter Effect Spot Light Element ..... --> + +<!ENTITY % SVG.feSpotLight.element "INCLUDE" > +<![%SVG.feSpotLight.element;[ +<!ENTITY % SVG.feSpotLight.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feSpotLight.qname; %SVG.feSpotLight.content; > +<!-- end of SVG.feSpotLight.element -->]]> + +<!ENTITY % SVG.feSpotLight.attlist "INCLUDE" > +<![%SVG.feSpotLight.attlist;[ +<!ATTLIST %SVG.feSpotLight.qname; + %SVG.Core.attrib; + x %Number.datatype; #IMPLIED + y %Number.datatype; #IMPLIED + z %Number.datatype; #IMPLIED + pointsAtX %Number.datatype; #IMPLIED + pointsAtY %Number.datatype; #IMPLIED + pointsAtZ %Number.datatype; #IMPLIED + specularExponent %Number.datatype; #IMPLIED + limitingConeAngle %Number.datatype; #IMPLIED +> +<!-- end of SVG.feSpotLight.attlist -->]]> + +<!-- feFuncR: Filter Effect Function Red Element ....... --> + +<!ENTITY % SVG.feFuncR.element "INCLUDE" > +<![%SVG.feFuncR.element;[ +<!ENTITY % SVG.feFuncR.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feFuncR.qname; %SVG.feFuncR.content; > +<!-- end of SVG.feFuncR.element -->]]> + +<!ENTITY % SVG.feFuncR.attlist "INCLUDE" > +<![%SVG.feFuncR.attlist;[ +<!ATTLIST %SVG.feFuncR.qname; + %SVG.Core.attrib; + type ( identity | table | discrete | linear | gamma ) #REQUIRED + tableValues CDATA #IMPLIED + slope %Number.datatype; #IMPLIED + intercept %Number.datatype; #IMPLIED + amplitude %Number.datatype; #IMPLIED + exponent %Number.datatype; #IMPLIED + offset %Number.datatype; #IMPLIED +> +<!-- end of SVG.feFuncR.attlist -->]]> + +<!-- feFuncG: Filter Effect Function Green Element ..... --> + +<!ENTITY % SVG.feFuncG.element "INCLUDE" > +<![%SVG.feFuncG.element;[ +<!ENTITY % SVG.feFuncG.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feFuncG.qname; %SVG.feFuncG.content; > +<!-- end of SVG.feFuncG.element -->]]> + +<!ENTITY % SVG.feFuncG.attlist "INCLUDE" > +<![%SVG.feFuncG.attlist;[ +<!ATTLIST %SVG.feFuncG.qname; + %SVG.Core.attrib; + type ( identity | table | discrete | linear | gamma ) #REQUIRED + tableValues CDATA #IMPLIED + slope %Number.datatype; #IMPLIED + intercept %Number.datatype; #IMPLIED + amplitude %Number.datatype; #IMPLIED + exponent %Number.datatype; #IMPLIED + offset %Number.datatype; #IMPLIED +> +<!-- end of SVG.feFuncG.attlist -->]]> + +<!-- feFuncB: Filter Effect Function Blue Element ...... --> + +<!ENTITY % SVG.feFuncB.element "INCLUDE" > +<![%SVG.feFuncB.element;[ +<!ENTITY % SVG.feFuncB.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feFuncB.qname; %SVG.feFuncB.content; > +<!-- end of SVG.feFuncB.element -->]]> + +<!ENTITY % SVG.feFuncB.attlist "INCLUDE" > +<![%SVG.feFuncB.attlist;[ +<!ATTLIST %SVG.feFuncB.qname; + %SVG.Core.attrib; + type ( identity | table | discrete | linear | gamma ) #REQUIRED + tableValues CDATA #IMPLIED + slope %Number.datatype; #IMPLIED + intercept %Number.datatype; #IMPLIED + amplitude %Number.datatype; #IMPLIED + exponent %Number.datatype; #IMPLIED + offset %Number.datatype; #IMPLIED +> +<!-- end of SVG.feFuncB.attlist -->]]> + +<!-- feFuncA: Filter Effect Function Alpha Element ..... --> + +<!ENTITY % SVG.feFuncA.element "INCLUDE" > +<![%SVG.feFuncA.element;[ +<!ENTITY % SVG.feFuncA.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feFuncA.qname; %SVG.feFuncA.content; > +<!-- end of SVG.feFuncA.element -->]]> + +<!ENTITY % SVG.feFuncA.attlist "INCLUDE" > +<![%SVG.feFuncA.attlist;[ +<!ATTLIST %SVG.feFuncA.qname; + %SVG.Core.attrib; + type ( identity | table | discrete | linear | gamma ) #REQUIRED + tableValues CDATA #IMPLIED + slope %Number.datatype; #IMPLIED + intercept %Number.datatype; #IMPLIED + amplitude %Number.datatype; #IMPLIED + exponent %Number.datatype; #IMPLIED + offset %Number.datatype; #IMPLIED +> +<!-- end of SVG.feFuncA.attlist -->]]> + +<!-- end of svg-filter.mod --> +]]> + +<!-- Cursor Module ............................................... --> +<!ENTITY % svg-cursor.module "INCLUDE" > +<![%svg-cursor.module;[ +<!ENTITY % svg-cursor.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Cursor//EN" + "svg-cursor.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Cursor Module ................................................. --> +<!-- file: svg-cursor.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Cursor//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-cursor.mod" + + ....................................................................... --> + +<!-- Cursor + + cursor + + This module declares markup to provide support for cursor. +--> + +<!-- 'cursor' property/attribute value (e.g., 'crosshair', <uri>) --> +<!ENTITY % CursorValue.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.cursor.qname "cursor" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.XLinkRequired.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Cursor.class .................................. --> + +<!ENTITY % SVG.Cursor.extra.class "" > + +<!ENTITY % SVG.Cursor.class + "| %SVG.cursor.qname; %SVG.Cursor.extra.class;" +> + +<!-- SVG.Cursor.attrib ................................. --> + +<!ENTITY % SVG.Cursor.extra.attrib "" > + +<!ENTITY % SVG.Cursor.attrib + "cursor %CursorValue.datatype; #IMPLIED + %SVG.Cursor.extra.attrib;" +> + +<!-- cursor: Cursor Element ............................ --> + +<!ENTITY % SVG.cursor.element "INCLUDE" > +<![%SVG.cursor.element;[ +<!ENTITY % SVG.cursor.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.cursor.qname; %SVG.cursor.content; > +<!-- end of SVG.cursor.element -->]]> + +<!ENTITY % SVG.cursor.attlist "INCLUDE" > +<![%SVG.cursor.attlist;[ +<!ATTLIST %SVG.cursor.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.XLinkRequired.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED +> +<!-- end of SVG.cursor.attlist -->]]> + +<!-- end of svg-cursor.mod --> +]]> + +<!-- Hyperlinking Module ......................................... --> +<!ENTITY % svg-hyperlink.module "INCLUDE" > +<![%svg-hyperlink.module;[ +<!ENTITY % svg-hyperlink.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Hyperlinking//EN" + "svg-hyperlink.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Hyperlinking Module ........................................... --> +<!-- file: svg-hyperlink.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Hyperlinking//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-hyperlink.mod" + + ....................................................................... --> + +<!-- Hyperlinking + + a + + This module declares markup to provide support for hyper linking. +--> + +<!-- link to this target --> +<!ENTITY % LinkTarget.datatype "NMTOKEN" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.a.qname "a" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLinkReplace.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Hyperlink.class ............................... --> + +<!ENTITY % SVG.Hyperlink.extra.class "" > + +<!ENTITY % SVG.Hyperlink.class + "| %SVG.a.qname; %SVG.Hyperlink.extra.class;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- a: Anchor Element ................................. --> + +<!ENTITY % SVG.a.element "INCLUDE" > +<![%SVG.a.element;[ +<!ENTITY % SVG.a.content + "( #PCDATA | %SVG.Description.class; | %SVG.Animation.class; + %SVG.Structure.class; %SVG.Conditional.class; %SVG.Image.class; + %SVG.Style.class; %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; + %SVG.Profile.class; %SVG.Gradient.class; %SVG.Pattern.class; + %SVG.Clip.class; %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.a.qname; %SVG.a.content; > +<!-- end of SVG.a.element -->]]> + +<!ENTITY % SVG.a.attlist "INCLUDE" > +<![%SVG.a.attlist;[ +<!ATTLIST %SVG.a.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.XLinkReplace.attrib; + %SVG.External.attrib; + transform %TransformList.datatype; #IMPLIED + target %LinkTarget.datatype; #IMPLIED +> +<!-- end of SVG.a.attlist -->]]> + +<!-- end of svg-hyperlink.mod --> +]]> + +<!-- View Module ................................................. --> +<!ENTITY % svg-view.module "INCLUDE" > +<![%svg-view.module;[ +<!ENTITY % svg-view.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 View//EN" + "svg-view.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 View Module ................................................... --> +<!-- file: svg-view.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 View//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-view.mod" + + ....................................................................... --> + +<!-- View + + view + + This module declares markup to provide support for view. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.view.qname "view" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.View.class .................................... --> + +<!ENTITY % SVG.View.extra.class "" > + +<!ENTITY % SVG.View.class + "| %SVG.view.qname; %SVG.View.extra.class;" +> + +<!-- view: View Element ................................ --> + +<!ENTITY % SVG.view.element "INCLUDE" > +<![%SVG.view.element;[ +<!ENTITY % SVG.view.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.view.qname; %SVG.view.content; > +<!-- end of SVG.view.element -->]]> + +<!ENTITY % SVG.view.attlist "INCLUDE" > +<![%SVG.view.attlist;[ +<!ATTLIST %SVG.view.qname; + %SVG.Core.attrib; + %SVG.External.attrib; + viewBox %ViewBoxSpec.datatype; #IMPLIED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' + zoomAndPan ( disable | magnify ) 'magnify' + viewTarget CDATA #IMPLIED +> +<!-- end of SVG.view.attlist -->]]> + +<!-- end of svg-view.mod --> +]]> + +<!-- Scripting Module ............................................ --> +<!ENTITY % svg-script.module "INCLUDE" > +<![%svg-script.module;[ +<!ENTITY % svg-script.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Scripting//EN" + "svg-script.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Scripting Module .............................................. --> +<!-- file: svg-script.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Scripting//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-script.mod" + + ....................................................................... --> + +<!-- Scripting + + script + + This module declares markup to provide support for scripting. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.script.qname "script" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Script.class .................................. --> + +<!ENTITY % SVG.Script.extra.class "" > + +<!ENTITY % SVG.Script.class + "| %SVG.script.qname; %SVG.Script.extra.class;" +> + +<!-- script: Script Element ............................ --> + +<!ENTITY % SVG.script.element "INCLUDE" > +<![%SVG.script.element;[ +<!ENTITY % SVG.script.content "( #PCDATA )" > +<!ELEMENT %SVG.script.qname; %SVG.script.content; > +<!-- end of SVG.script.element -->]]> + +<!ENTITY % SVG.script.attlist "INCLUDE" > +<![%SVG.script.attlist;[ +<!ATTLIST %SVG.script.qname; + %SVG.Core.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + type %ContentType.datatype; #REQUIRED +> +<!-- end of SVG.script.attlist -->]]> + +<!-- end of svg-script.mod --> +]]> + +<!-- Animation Module ............................................ --> +<!ENTITY % svg-animation.module "INCLUDE" > +<![%svg-animation.module;[ +<!ENTITY % svg-animation.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Animation//EN" + "svg-animation.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Animation Module .............................................. --> +<!-- file: svg-animation.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Animation//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-animation.mod" + + ....................................................................... --> + +<!-- Animation + + animate, set, animateMotion, animateColor, animateTransform, mpath + + This module declares markup to provide support for animation. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.animate.qname "animate" > +<!ENTITY % SVG.set.qname "set" > +<!ENTITY % SVG.animateMotion.qname "animateMotion" > +<!ENTITY % SVG.animateColor.qname "animateColor" > +<!ENTITY % SVG.animateTransform.qname "animateTransform" > +<!ENTITY % SVG.mpath.qname "mpath" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.AnimationEvents.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.XLinkRequired.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Animation.class ............................... --> + +<!ENTITY % SVG.Animation.extra.class "" > + +<!ENTITY % SVG.Animation.class + "%SVG.animate.qname; | %SVG.set.qname; | %SVG.animateMotion.qname; | + %SVG.animateColor.qname; | %SVG.animateTransform.qname; + %SVG.Animation.extra.class;" +> + +<!-- SVG.Animation.attrib .............................. --> + +<!ENTITY % SVG.Animation.extra.attrib "" > + +<!ENTITY % SVG.Animation.attrib + "%SVG.XLink.attrib; + %SVG.Animation.extra.attrib;" +> + +<!-- SVG.AnimationAttribute.attrib ..................... --> + +<!ENTITY % SVG.AnimationAttribute.extra.attrib "" > + +<!ENTITY % SVG.AnimationAttribute.attrib + "attributeName CDATA #REQUIRED + attributeType CDATA #IMPLIED + %SVG.AnimationAttribute.extra.attrib;" +> + +<!-- SVG.AnimationTiming.attrib ........................ --> + +<!ENTITY % SVG.AnimationTiming.extra.attrib "" > + +<!ENTITY % SVG.AnimationTiming.attrib + "begin CDATA #IMPLIED + dur CDATA #IMPLIED + end CDATA #IMPLIED + min CDATA #IMPLIED + max CDATA #IMPLIED + restart ( always | never | whenNotActive ) 'always' + repeatCount CDATA #IMPLIED + repeatDur CDATA #IMPLIED + fill ( remove | freeze ) 'remove' + %SVG.AnimationTiming.extra.attrib;" +> + +<!-- SVG.AnimationValue.attrib ......................... --> + +<!ENTITY % SVG.AnimationValue.extra.attrib "" > + +<!ENTITY % SVG.AnimationValue.attrib + "calcMode ( discrete | linear | paced | spline ) 'linear' + values CDATA #IMPLIED + keyTimes CDATA #IMPLIED + keySplines CDATA #IMPLIED + from CDATA #IMPLIED + to CDATA #IMPLIED + by CDATA #IMPLIED + %SVG.AnimationValue.extra.attrib;" +> + +<!-- SVG.AnimationAddtion.attrib ....................... --> + +<!ENTITY % SVG.AnimationAddtion.extra.attrib "" > + +<!ENTITY % SVG.AnimationAddtion.attrib + "additive ( replace | sum ) 'replace' + accumulate ( none | sum ) 'none' + %SVG.AnimationAddtion.extra.attrib;" +> + +<!-- animate: Animate Element .......................... --> + +<!ENTITY % SVG.animate.element "INCLUDE" > +<![%SVG.animate.element;[ +<!ENTITY % SVG.animate.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.animate.qname; %SVG.animate.content; > +<!-- end of SVG.animate.element -->]]> + +<!ENTITY % SVG.animate.attlist "INCLUDE" > +<![%SVG.animate.attlist;[ +<!ATTLIST %SVG.animate.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.AnimationEvents.attrib; + %SVG.External.attrib; + %SVG.Animation.attrib; + %SVG.AnimationAttribute.attrib; + %SVG.AnimationTiming.attrib; + %SVG.AnimationValue.attrib; + %SVG.AnimationAddtion.attrib; +> +<!-- end of SVG.animate.attlist -->]]> + +<!-- set: Set Element .................................. --> + +<!ENTITY % SVG.set.element "INCLUDE" > +<![%SVG.set.element;[ +<!ENTITY % SVG.set.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.set.qname; %SVG.set.content; > +<!-- end of SVG.set.element -->]]> + +<!ENTITY % SVG.set.attlist "INCLUDE" > +<![%SVG.set.attlist;[ +<!ATTLIST %SVG.set.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.AnimationEvents.attrib; + %SVG.External.attrib; + %SVG.Animation.attrib; + %SVG.AnimationAttribute.attrib; + %SVG.AnimationTiming.attrib; + to CDATA #IMPLIED +> +<!-- end of SVG.set.attlist -->]]> + +<!-- animateMotion: Animate Motion Element ............. --> + +<!ENTITY % SVG.animateMotion.element "INCLUDE" > +<![%SVG.animateMotion.element;[ +<!ENTITY % SVG.animateMotion.content + "(( %SVG.Description.class; )*, %SVG.mpath.qname;? )" +> +<!ELEMENT %SVG.animateMotion.qname; %SVG.animateMotion.content; > +<!-- end of SVG.animateMotion.element -->]]> + +<!ENTITY % SVG.animateMotion.attlist "INCLUDE" > +<![%SVG.animateMotion.attlist;[ +<!ATTLIST %SVG.animateMotion.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.AnimationEvents.attrib; + %SVG.External.attrib; + %SVG.Animation.attrib; + %SVG.AnimationTiming.attrib; + %SVG.AnimationAddtion.attrib; + calcMode ( discrete | linear | paced | spline ) 'paced' + values CDATA #IMPLIED + keyTimes CDATA #IMPLIED + keySplines CDATA #IMPLIED + from CDATA #IMPLIED + to CDATA #IMPLIED + by CDATA #IMPLIED + path CDATA #IMPLIED + keyPoints CDATA #IMPLIED + rotate CDATA #IMPLIED + origin CDATA #IMPLIED +> +<!-- end of SVG.animateMotion.attlist -->]]> + +<!-- animateColor: Animate Color Element ............... --> + +<!ENTITY % SVG.animateColor.element "INCLUDE" > +<![%SVG.animateColor.element;[ +<!ENTITY % SVG.animateColor.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.animateColor.qname; %SVG.animateColor.content; > +<!-- end of SVG.animateColor.element -->]]> + +<!ENTITY % SVG.animateColor.attlist "INCLUDE" > +<![%SVG.animateColor.attlist;[ +<!ATTLIST %SVG.animateColor.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.AnimationEvents.attrib; + %SVG.External.attrib; + %SVG.Animation.attrib; + %SVG.AnimationAttribute.attrib; + %SVG.AnimationTiming.attrib; + %SVG.AnimationValue.attrib; + %SVG.AnimationAddtion.attrib; +> +<!-- end of SVG.animateColor.attlist -->]]> + +<!-- animateTransform: Animate Transform Element ....... --> + +<!ENTITY % SVG.animateTransform.element "INCLUDE" > +<![%SVG.animateTransform.element;[ +<!ENTITY % SVG.animateTransform.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.animateTransform.qname; %SVG.animateTransform.content; > +<!-- end of SVG.animateTransform.element -->]]> + +<!ENTITY % SVG.animateTransform.attlist "INCLUDE" > +<![%SVG.animateTransform.attlist;[ +<!ATTLIST %SVG.animateTransform.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.AnimationEvents.attrib; + %SVG.External.attrib; + %SVG.Animation.attrib; + %SVG.AnimationAttribute.attrib; + %SVG.AnimationTiming.attrib; + %SVG.AnimationValue.attrib; + %SVG.AnimationAddtion.attrib; + type ( translate | scale | rotate | skewX | skewY ) 'translate' +> +<!-- end of SVG.animateTransform.attlist -->]]> + +<!-- mpath: Motion Path Element ........................ --> + +<!ENTITY % SVG.mpath.element "INCLUDE" > +<![%SVG.mpath.element;[ +<!ENTITY % SVG.mpath.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.mpath.qname; %SVG.mpath.content; > +<!-- end of SVG.mpath.element -->]]> + +<!ENTITY % SVG.mpath.attlist "INCLUDE" > +<![%SVG.mpath.attlist;[ +<!ATTLIST %SVG.mpath.qname; + %SVG.Core.attrib; + %SVG.XLinkRequired.attrib; + %SVG.External.attrib; +> +<!-- end of SVG.mpath.attlist -->]]> + +<!-- end of svg-animation.mod --> +]]> + +<!-- Font Module ................................................. --> +<!ENTITY % svg-font.module "INCLUDE" > +<![%svg-font.module;[ +<!ENTITY % svg-font.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Font//EN" + "svg-font.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Font Module ................................................... --> +<!-- file: svg-font.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Font//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-font.mod" + + ....................................................................... --> + +<!-- Font + + font, font-face, glyph, missing-glyph, hkern, vkern, font-face-src, + font-face-uri, font-face-format, font-face-name, definition-src + + This module declares markup to provide support for template. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.font.qname "font" > +<!ENTITY % SVG.font-face.qname "font-face" > +<!ENTITY % SVG.glyph.qname "glyph" > +<!ENTITY % SVG.missing-glyph.qname "missing-glyph" > +<!ENTITY % SVG.hkern.qname "hkern" > +<!ENTITY % SVG.vkern.qname "vkern" > +<!ENTITY % SVG.font-face-src.qname "font-face-src" > +<!ENTITY % SVG.font-face-uri.qname "font-face-uri" > +<!ENTITY % SVG.font-face-format.qname "font-face-format" > +<!ENTITY % SVG.font-face-name.qname "font-face-name" > +<!ENTITY % SVG.definition-src.qname "definition-src" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLinkRequired.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Font.class .................................... --> + +<!ENTITY % SVG.Font.extra.class "" > + +<!ENTITY % SVG.Font.class + "| %SVG.font.qname; | %SVG.font-face.qname; %SVG.Font.extra.class;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- font: Font Element ................................ --> + +<!ENTITY % SVG.font.element "INCLUDE" > +<![%SVG.font.element;[ +<!ENTITY % SVG.font.content + "(( %SVG.Description.class; )*, %SVG.font-face.qname;, + %SVG.missing-glyph.qname;, ( %SVG.glyph.qname; | %SVG.hkern.qname; + | %SVG.vkern.qname; )*)" +> +<!ELEMENT %SVG.font.qname; %SVG.font.content; > +<!-- end of SVG.font.element -->]]> + +<!ENTITY % SVG.font.attlist "INCLUDE" > +<![%SVG.font.attlist;[ +<!ATTLIST %SVG.font.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.External.attrib; + horiz-origin-x %Number.datatype; #IMPLIED + horiz-origin-y %Number.datatype; #IMPLIED + horiz-adv-x %Number.datatype; #REQUIRED + vert-origin-x %Number.datatype; #IMPLIED + vert-origin-y %Number.datatype; #IMPLIED + vert-adv-y %Number.datatype; #IMPLIED +> +<!-- end of SVG.font.attlist -->]]> + +<!-- font-face: Font Face Element ...................... --> + +<!ENTITY % SVG.font-face.element "INCLUDE" > +<![%SVG.font-face.element;[ +<!ENTITY % SVG.font-face.content + "(( %SVG.Description.class; )*, %SVG.font-face-src.qname;?, + %SVG.definition-src.qname;? )" +> +<!ELEMENT %SVG.font-face.qname; %SVG.font-face.content; > +<!-- end of SVG.font-face.element -->]]> + +<!ENTITY % SVG.font-face.attlist "INCLUDE" > +<![%SVG.font-face.attlist;[ +<!ATTLIST %SVG.font-face.qname; + %SVG.Core.attrib; + font-family CDATA #IMPLIED + font-style CDATA #IMPLIED + font-variant CDATA #IMPLIED + font-weight CDATA #IMPLIED + font-stretch CDATA #IMPLIED + font-size CDATA #IMPLIED + unicode-range CDATA #IMPLIED + units-per-em %Number.datatype; #IMPLIED + panose-1 CDATA #IMPLIED + stemv %Number.datatype; #IMPLIED + stemh %Number.datatype; #IMPLIED + slope %Number.datatype; #IMPLIED + cap-height %Number.datatype; #IMPLIED + x-height %Number.datatype; #IMPLIED + accent-height %Number.datatype; #IMPLIED + ascent %Number.datatype; #IMPLIED + descent %Number.datatype; #IMPLIED + widths CDATA #IMPLIED + bbox CDATA #IMPLIED + ideographic %Number.datatype; #IMPLIED + alphabetic %Number.datatype; #IMPLIED + mathematical %Number.datatype; #IMPLIED + hanging %Number.datatype; #IMPLIED + v-ideographic %Number.datatype; #IMPLIED + v-alphabetic %Number.datatype; #IMPLIED + v-mathematical %Number.datatype; #IMPLIED + v-hanging %Number.datatype; #IMPLIED + underline-position %Number.datatype; #IMPLIED + underline-thickness %Number.datatype; #IMPLIED + strikethrough-position %Number.datatype; #IMPLIED + strikethrough-thickness %Number.datatype; #IMPLIED + overline-position %Number.datatype; #IMPLIED + overline-thickness %Number.datatype; #IMPLIED +> +<!-- end of SVG.font-face.attlist -->]]> + +<!-- glyph: Glyph Element .............................. --> + +<!ENTITY % SVG.glyph.element "INCLUDE" > +<![%SVG.glyph.element;[ +<!ENTITY % SVG.glyph.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.glyph.qname; %SVG.glyph.content; > +<!-- end of SVG.glyph.element -->]]> + +<!ENTITY % SVG.glyph.attlist "INCLUDE" > +<![%SVG.glyph.attlist;[ +<!ATTLIST %SVG.glyph.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + unicode CDATA #IMPLIED + glyph-name CDATA #IMPLIED + d %PathData.datatype; #IMPLIED + orientation CDATA #IMPLIED + arabic-form CDATA #IMPLIED + lang %LanguageCodes.datatype; #IMPLIED + horiz-adv-x %Number.datatype; #IMPLIED + vert-origin-x %Number.datatype; #IMPLIED + vert-origin-y %Number.datatype; #IMPLIED + vert-adv-y %Number.datatype; #IMPLIED +> +<!-- end of SVG.glyph.attlist -->]]> + +<!-- missing-glyph: Missing Glyph Element .............. --> + +<!ENTITY % SVG.missing-glyph.element "INCLUDE" > +<![%SVG.missing-glyph.element;[ +<!ENTITY % SVG.missing-glyph.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.missing-glyph.qname; %SVG.missing-glyph.content; > +<!-- end of SVG.missing-glyph.element -->]]> + +<!ENTITY % SVG.missing-glyph.attlist "INCLUDE" > +<![%SVG.missing-glyph.attlist;[ +<!ATTLIST %SVG.missing-glyph.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + d %PathData.datatype; #IMPLIED + horiz-adv-x %Number.datatype; #IMPLIED + vert-origin-x %Number.datatype; #IMPLIED + vert-origin-y %Number.datatype; #IMPLIED + vert-adv-y %Number.datatype; #IMPLIED +> +<!-- end of SVG.missing-glyph.attlist -->]]> + +<!-- hkern: Horizontal Kerning Element ................. --> + +<!ENTITY % SVG.hkern.element "INCLUDE" > +<![%SVG.hkern.element;[ +<!ENTITY % SVG.hkern.content "EMPTY" > +<!ELEMENT %SVG.hkern.qname; %SVG.hkern.content; > +<!-- end of SVG.hkern.element -->]]> + +<!ENTITY % SVG.hkern.attlist "INCLUDE" > +<![%SVG.hkern.attlist;[ +<!ATTLIST %SVG.hkern.qname; + %SVG.Core.attrib; + u1 CDATA #IMPLIED + g1 CDATA #IMPLIED + u2 CDATA #IMPLIED + g2 CDATA #IMPLIED + k %Number.datatype; #REQUIRED +> +<!-- end of SVG.hkern.attlist -->]]> + +<!-- vkern: Vertical Kerning Element ................... --> + +<!ENTITY % SVG.vkern.element "INCLUDE" > +<![%SVG.vkern.element;[ +<!ENTITY % SVG.vkern.content "EMPTY" > +<!ELEMENT %SVG.vkern.qname; %SVG.vkern.content; > +<!-- end of SVG.vkern.element -->]]> + +<!ENTITY % SVG.vkern.attlist "INCLUDE" > +<![%SVG.vkern.attlist;[ +<!ATTLIST %SVG.vkern.qname; + %SVG.Core.attrib; + u1 CDATA #IMPLIED + g1 CDATA #IMPLIED + u2 CDATA #IMPLIED + g2 CDATA #IMPLIED + k %Number.datatype; #REQUIRED +> +<!-- end of SVG.vkern.attlist -->]]> + +<!-- font-face-src: Font Face Source Element ........... --> + +<!ENTITY % SVG.font-face-src.element "INCLUDE" > +<![%SVG.font-face-src.element;[ +<!ENTITY % SVG.font-face-src.content + "( %SVG.font-face-uri.qname; | %SVG.font-face-name.qname; )+" +> +<!ELEMENT %SVG.font-face-src.qname; %SVG.font-face-src.content; > +<!-- end of SVG.font-face-src.element -->]]> + +<!ENTITY % SVG.font-face-src.attlist "INCLUDE" > +<![%SVG.font-face-src.attlist;[ +<!ATTLIST %SVG.font-face-src.qname; + %SVG.Core.attrib; +> +<!-- end of SVG.font-face-src.attlist -->]]> + +<!-- font-face-uri: Font Face URI Element .............. --> + +<!ENTITY % SVG.font-face-uri.element "INCLUDE" > +<![%SVG.font-face-uri.element;[ +<!ENTITY % SVG.font-face-uri.content + "( %SVG.font-face-format.qname; )*" +> +<!ELEMENT %SVG.font-face-uri.qname; %SVG.font-face-uri.content; > +<!-- end of SVG.font-face-uri.element -->]]> + +<!ENTITY % SVG.font-face-uri.attlist "INCLUDE" > +<![%SVG.font-face-uri.attlist;[ +<!ATTLIST %SVG.font-face-uri.qname; + %SVG.Core.attrib; + %SVG.XLinkRequired.attrib; +> +<!-- end of SVG.font-face-uri.attlist -->]]> + +<!-- font-face-format: Font Face Format Element ........ --> + +<!ENTITY % SVG.font-face-format.element "INCLUDE" > +<![%SVG.font-face-format.element;[ +<!ENTITY % SVG.font-face-format.content "EMPTY" > +<!ELEMENT %SVG.font-face-format.qname; %SVG.font-face-format.content; > +<!-- end of SVG.font-face-format.element -->]]> + +<!ENTITY % SVG.font-face-format.attlist "INCLUDE" > +<![%SVG.font-face-format.attlist;[ +<!ATTLIST %SVG.font-face-format.qname; + %SVG.Core.attrib; + string CDATA #IMPLIED +> +<!-- end of SVG.font-face-format.attlist -->]]> + +<!-- font-face-name: Font Face Name Element ............ --> + +<!ENTITY % SVG.font-face-name.element "INCLUDE" > +<![%SVG.font-face-name.element;[ +<!ENTITY % SVG.font-face-name.content "EMPTY" > +<!ELEMENT %SVG.font-face-name.qname; %SVG.font-face-name.content; > +<!-- end of SVG.font-face-name.element -->]]> + +<!ENTITY % SVG.font-face-name.attlist "INCLUDE" > +<![%SVG.font-face-name.attlist;[ +<!ATTLIST %SVG.font-face-name.qname; + %SVG.Core.attrib; + name CDATA #IMPLIED +> +<!-- end of SVG.font-face-name.attlist -->]]> + +<!-- definition-src: Definition Source Element ......... --> + +<!ENTITY % SVG.definition-src.element "INCLUDE" > +<![%SVG.definition-src.element;[ +<!ENTITY % SVG.definition-src.content "EMPTY" > +<!ELEMENT %SVG.definition-src.qname; %SVG.definition-src.content; > +<!-- end of SVG.definition-src.element -->]]> + +<!ENTITY % SVG.definition-src.attlist "INCLUDE" > +<![%SVG.definition-src.attlist;[ +<!ATTLIST %SVG.definition-src.qname; + %SVG.Core.attrib; + %SVG.XLinkRequired.attrib; +> +<!-- end of SVG.definition-src.attlist -->]]> + +<!-- end of svg-font.mod --> +]]> + +<!-- Extensibility Module ........................................ --> +<!ENTITY % svg-extensibility.module "INCLUDE" > +<![%svg-extensibility.module;[ +<!ENTITY % svg-extensibility.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Extensibility//EN" + "svg-extensibility.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Extensibility Module .......................................... --> +<!-- file: svg-extensibility.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Extensibility//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-extensibility.mod" + + ....................................................................... --> + +<!-- Extensibility + + foreignObject + + This module declares markup to provide support for extensibility. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.foreignObject.qname "foreignObject" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Extensibility.class ........................... --> + +<!ENTITY % SVG.Extensibility.extra.class "" > + +<!ENTITY % SVG.Extensibility.class + "| %SVG.foreignObject.qname; %SVG.Extensibility.extra.class;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- foreignObject: Foreign Object Element ............. --> + +<!ENTITY % SVG.foreignObject.element "INCLUDE" > +<![%SVG.foreignObject.element;[ +<!ENTITY % SVG.foreignObject.content "( #PCDATA )" > +<!ELEMENT %SVG.foreignObject.qname; %SVG.foreignObject.content; > +<!-- end of SVG.foreignObject.element -->]]> + +<!ENTITY % SVG.foreignObject.attlist "INCLUDE" > +<![%SVG.foreignObject.attlist;[ +<!ATTLIST %SVG.foreignObject.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #REQUIRED + height %Length.datatype; #REQUIRED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.foreignObject.attlist -->]]> + +<!-- end of svg-extensibility.mod --> +]]> + +<!-- end of SVG 1.1 DTD .................................................... --> +<!-- ....................................................................... --> + +]]> + +<!-- Instantiate XHTML 1.1 DTD .................................. --> +<![%XHTML.module;[ +<!ENTITY % XHTML.dtd.decl + 'PUBLIC "-//W3C//DTD XHTML 1.1//EN" + "%XHTML.dtd.sysid;"' +> +<!ENTITY % XHTML.dtd %XHTML.dtd.decl; > +<!-- ....................................................................... --> +<!-- XHTML 1.1 DTD ........................................................ --> +<!-- file: xhtml11.dtd +--> + +<!-- XHTML 1.1 DTD + + This is XHTML, a reformulation of HTML as a modular XML application. + + The Extensible HyperText Markup Language (XHTML) + Copyright 1998-2001 World Wide Web Consortium + (Massachusetts Institute of Technology, Institut National de + Recherche en Informatique et en Automatique, Keio University). + All Rights Reserved. + + Permission to use, copy, modify and distribute the XHTML DTD and its + accompanying documentation for any purpose and without fee is hereby + granted in perpetuity, provided that the above copyright notice and + this paragraph appear in all copies. The copyright holders make no + representation about the suitability of the DTD for any purpose. + + It is provided "as is" without expressed or implied warranty. + + Author: Murray M. Altheim <altheim@eng.sun.com> + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + +--> +<!-- This is the driver file for version 1.1 of the XHTML DTD. + + Please use this formal public identifier to identify it: + + "-//W3C//DTD XHTML 1.1//EN" +--> +<!ENTITY % XHTML.version "-//W3C//DTD XHTML 1.1//EN" > + +<!-- Use this URI to identify the default namespace: + + "http://www.w3.org/1999/xhtml" + + See the Qualified Names module for information + on the use of namespace prefixes in the DTD. +--> +<!ENTITY % NS.prefixed "IGNORE" > +<!ENTITY % XHTML.prefix "" > + +<!-- Reserved for use with the XLink namespace: +--> +<!ENTITY % XLINK.xmlns "" > +<!ENTITY % XLINK.xmlns.attrib "" > + +<!-- For example, if you are using XHTML 1.1 directly, use the FPI + in the DOCTYPE declaration, with the xmlns attribute on the + document element to identify the default namespace: + + <?xml version="1.0"?> + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en"> + ... + </html> + + Revisions: + (none) +--> + +<!-- reserved for future use with document profiles --> +<!ENTITY % XHTML.profile "" > + +<!-- Bidirectional Text features + This feature-test entity is used to declare elements + and attributes used for bidirectional text support. +--> +<!ENTITY % XHTML.bidi "INCLUDE" > + +<?doc type="doctype" role="title" { XHTML 1.1 } ?> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Pre-Framework Redeclaration placeholder .................... --> +<!-- this serves as a location to insert markup declarations + into the DTD prior to the framework declarations. +--> +<!ENTITY % xhtml-prefw-redecl.module "IGNORE" > +<![%xhtml-prefw-redecl.module;[ +%xhtml-prefw-redecl.mod; +<!-- end of xhtml-prefw-redecl.module -->]]> + +<!ENTITY % xhtml-events.module "INCLUDE" > + +<!-- Inline Style Module ........................................ --> +<!ENTITY % xhtml-inlstyle.module "INCLUDE" > +<![%xhtml-inlstyle.module;[ +<!ENTITY % xhtml-inlstyle.mod + PUBLIC "-//W3C//ELEMENTS XHTML Inline Style 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstyle-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Inline Style Module ........................................... --> +<!-- file: xhtml-inlstyle-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Inline Style 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstyle-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Inline Style + + This module declares the 'style' attribute, used to support inline + style markup. This module must be instantiated prior to the XHTML + Common Attributes module in order to be included in %Core.attrib;. +--> + +<!ENTITY % style.attrib + "style CDATA #IMPLIED" +> + + +<!ENTITY % Core.extra.attrib + "%style.attrib;" +> + +<!-- end of xhtml-inlstyle-1.mod --> +]]> + +<!-- declare Document Model module instantiated in framework +--> +<!ENTITY % xhtml-model.mod + PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" + "xhtml11-model-1.mod" > + +<!-- Modular Framework Module (required) ......................... --> +<!ENTITY % xhtml-framework.module "INCLUDE" > +<![%xhtml-framework.module;[ +<!ENTITY % xhtml-framework.mod + PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-framework-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Modular Framework Module ...................................... --> +<!-- file: xhtml-framework-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-framework-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Modular Framework + + This required module instantiates the modules needed + to support the XHTML modularization model, including: + + + notations + + datatypes + + namespace-qualified names + + common attributes + + document model + + character entities + + The Intrinsic Events module is ignored by default but + occurs in this module because it must be instantiated + prior to Attributes but after Datatypes. +--> + +<!ENTITY % xhtml-arch.module "IGNORE" > +<![%xhtml-arch.module;[ +<!ENTITY % xhtml-arch.mod + PUBLIC "-//W3C//ELEMENTS XHTML Base Architecture 1.0//EN" + "xhtml-arch-1.mod" > +%xhtml-arch.mod;]]> + +<!ENTITY % xhtml-notations.module "INCLUDE" > +<![%xhtml-notations.module;[ +<!ENTITY % xhtml-notations.mod + PUBLIC "-//W3C//NOTATIONS XHTML Notations 1.0//EN" + "xhtml-notations-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Notations Module .............................................. --> +<!-- file: xhtml-notations-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//NOTATIONS XHTML Notations 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-notations-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Notations + + defines the following notations, many of these imported from + other specifications and standards. When an existing FPI is + known, it is incorporated here. +--> + +<!-- XML Notations ..................................... --> +<!-- SGML and XML Notations ............................ --> + +<!-- W3C XML 1.0 Recommendation --> +<!NOTATION w3c-xml + PUBLIC "ISO 8879//NOTATION Extensible Markup Language (XML) 1.0//EN" > + +<!-- XML 1.0 CDATA --> +<!NOTATION cdata + PUBLIC "-//W3C//NOTATION XML 1.0: CDATA//EN" > + +<!-- SGML Formal Public Identifiers --> +<!NOTATION fpi + PUBLIC "ISO 8879:1986//NOTATION Formal Public Identifier//EN" > + +<!-- XHTML Notations ................................... --> + +<!-- Length defined for cellpadding/cellspacing --> + +<!-- nn for pixels or nn% for percentage length --> +<!NOTATION length + PUBLIC "-//W3C//NOTATION XHTML Datatype: Length//EN" > + +<!-- space-separated list of link types --> +<!NOTATION linkTypes + PUBLIC "-//W3C//NOTATION XHTML Datatype: LinkTypes//EN" > + +<!-- single or comma-separated list of media descriptors --> +<!NOTATION mediaDesc + PUBLIC "-//W3C//NOTATION XHTML Datatype: MediaDesc//EN" > + +<!-- pixel, percentage, or relative --> +<!NOTATION multiLength + PUBLIC "-//W3C//NOTATION XHTML Datatype: MultiLength//EN" > + +<!-- one or more digits (NUMBER) --> +<!NOTATION number + PUBLIC "-//W3C//NOTATION XHTML Datatype: Number//EN" > + +<!-- integer representing length in pixels --> +<!NOTATION pixels + PUBLIC "-//W3C//NOTATION XHTML Datatype: Pixels//EN" > + +<!-- script expression --> +<!NOTATION script + PUBLIC "-//W3C//NOTATION XHTML Datatype: Script//EN" > + +<!-- textual content --> +<!NOTATION text + PUBLIC "-//W3C//NOTATION XHTML Datatype: Text//EN" > + +<!-- Imported Notations ................................ --> + +<!-- a single character from [ISO10646] --> +<!NOTATION character + PUBLIC "-//W3C//NOTATION XHTML Datatype: Character//EN" > + +<!-- a character encoding, as per [RFC2045] --> +<!NOTATION charset + PUBLIC "-//W3C//NOTATION XHTML Datatype: Charset//EN" > + +<!-- a space separated list of character encodings, as per [RFC2045] --> +<!NOTATION charsets + PUBLIC "-//W3C//NOTATION XHTML Datatype: Charsets//EN" > + +<!-- media type, as per [RFC2045] --> +<!NOTATION contentType + PUBLIC "-//W3C//NOTATION XHTML Datatype: ContentType//EN" > + +<!-- comma-separated list of media types, as per [RFC2045] --> +<!NOTATION contentTypes + PUBLIC "-//W3C//NOTATION XHTML Datatype: ContentTypes//EN" > + +<!-- date and time information. ISO date format --> +<!NOTATION datetime + PUBLIC "-//W3C//NOTATION XHTML Datatype: Datetime//EN" > + +<!-- a language code, as per [RFC3066] --> +<!NOTATION languageCode + PUBLIC "-//W3C//NOTATION XHTML Datatype: LanguageCode//EN" > + +<!-- a Uniform Resource Identifier, see [URI] --> +<!NOTATION uri + PUBLIC "-//W3C//NOTATION XHTML Datatype: URI//EN" > + +<!-- a space-separated list of Uniform Resource Identifiers, see [URI] --> +<!NOTATION uris + PUBLIC "-//W3C//NOTATION XHTML Datatype: URIs//EN" > + +<!-- end of xhtml-notations-1.mod --> +]]> + +<!ENTITY % xhtml-datatypes.module "INCLUDE" > +<![%xhtml-datatypes.module;[ +<!ENTITY % xhtml-datatypes.mod + PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN" + "xhtml-datatypes-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Datatypes Module .............................................. --> +<!-- file: xhtml-datatypes-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Datatypes + + defines containers for the following datatypes, many of + these imported from other specifications and standards. +--> + +<!-- Length defined for cellpadding/cellspacing --> + +<!-- nn for pixels or nn% for percentage length --> +<!ENTITY % Length.datatype "CDATA" > + +<!-- space-separated list of link types --> +<!ENTITY % LinkTypes.datatype "NMTOKENS" > + +<!-- single or comma-separated list of media descriptors --> +<!ENTITY % MediaDesc.datatype "CDATA" > + +<!-- pixel, percentage, or relative --> +<!ENTITY % MultiLength.datatype "CDATA" > + +<!-- one or more digits (NUMBER) --> +<!ENTITY % Number.datatype "CDATA" > + +<!-- integer representing length in pixels --> +<!ENTITY % Pixels.datatype "CDATA" > + +<!-- script expression --> +<!ENTITY % Script.datatype "CDATA" > + +<!-- textual content --> +<!ENTITY % Text.datatype "CDATA" > + +<!-- Imported Datatypes ................................ --> + +<!-- a single character from [ISO10646] --> +<!ENTITY % Character.datatype "CDATA" > + +<!-- a character encoding, as per [RFC2045] --> +<!ENTITY % Charset.datatype "CDATA" > + +<!-- a space separated list of character encodings, as per [RFC2045] --> +<!ENTITY % Charsets.datatype "CDATA" > + +<!-- Color specification using color name or sRGB (#RRGGBB) values --> +<!ENTITY % Color.datatype "CDATA" > + +<!-- media type, as per [RFC2045] --> +<!ENTITY % ContentType.datatype "CDATA" > + +<!-- comma-separated list of media types, as per [RFC2045] --> +<!ENTITY % ContentTypes.datatype "CDATA" > + +<!-- date and time information. ISO date format --> +<!ENTITY % Datetime.datatype "CDATA" > + +<!-- formal public identifier, as per [ISO8879] --> +<!ENTITY % FPI.datatype "CDATA" > + +<!-- a language code, as per [RFC3066] --> +<!ENTITY % LanguageCode.datatype "NMTOKEN" > + +<!-- a Uniform Resource Identifier, see [URI] --> +<!ENTITY % URI.datatype "CDATA" > + +<!-- a space-separated list of Uniform Resource Identifiers, see [URI] --> +<!ENTITY % URIs.datatype "CDATA" > + +<!-- end of xhtml-datatypes-1.mod --> +]]> + +<!-- placeholder for XLink support module --> +<!ENTITY % xhtml-xlink.mod "" > + + +<!ENTITY % xhtml-qname.module "INCLUDE" > +<![%xhtml-qname.module;[ +<!ENTITY % xhtml-qname.mod + PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN" + "xhtml-qname-1.mod" > +<!-- ....................................................................... --> +<!-- XHTML Qname Module ................................................... --> +<!-- file: xhtml-qname-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-qname-1.mod" + + Revisions: +#2000-10-22: added qname declarations for ruby elements + ....................................................................... --> + +<!-- XHTML Qname (Qualified Name) Module + + This module is contained in two parts, labeled Section 'A' and 'B': + + Section A declares parameter entities to support namespace- + qualified names, namespace declarations, and name prefixing + for XHTML and extensions. + + Section B declares parameter entities used to provide + namespace-qualified names for all XHTML element types: + + %applet.qname; the xmlns-qualified name for <applet> + %base.qname; the xmlns-qualified name for <base> + ... + + XHTML extensions would create a module similar to this one. + Included in the XHTML distribution is a template module + ('template-qname-1.mod') suitable for this purpose. +--> + +<!-- Section A: XHTML XML Namespace Framework :::::::::::::::::::: --> + +<!-- 1. Declare a %XHTML.prefixed; conditional section keyword, used + to activate namespace prefixing. The default value should + inherit '%NS.prefixed;' from the DTD driver, so that unless + overridden, the default behaviour follows the overall DTD + prefixing scheme. +--> +<!ENTITY % NS.prefixed "IGNORE" > +<!ENTITY % XHTML.prefixed "%NS.prefixed;" > + +<!-- 2. Declare a parameter entity (eg., %XHTML.xmlns;) containing + the URI reference used to identify the XHTML namespace: +--> +<!ENTITY % XHTML.xmlns "http://www.w3.org/1999/xhtml" > + +<!-- 3. Declare parameter entities (eg., %XHTML.prefix;) containing + the default namespace prefix string(s) to use when prefixing + is enabled. This may be overridden in the DTD driver or the + internal subset of an document instance. If no default prefix + is desired, this may be declared as an empty string. + + NOTE: As specified in [XMLNAMES], the namespace prefix serves + as a proxy for the URI reference, and is not in itself significant. +--> +<!ENTITY % XHTML.prefix "" > + +<!-- 4. Declare parameter entities (eg., %XHTML.pfx;) containing the + colonized prefix(es) (eg., '%XHTML.prefix;:') used when + prefixing is active, an empty string when it is not. +--> +<![%XHTML.prefixed;[ +<!ENTITY % XHTML.pfx "%XHTML.prefix;:" > +]]> +<!ENTITY % XHTML.pfx "" > + +<!-- declare qualified name extensions here ............ --> +<!ENTITY % xhtml-qname-extra.mod "" > +<!-- ....................................................................... --> +<!-- MathML Qualified Names Module ........................................ --> +<!-- file: mathml2-qname-1.mod + + This is the Mathematical Markup Language (MathML) 2.0, an XML + application for describing mathematical notation and capturing + both its structure and content. + + Copyright 1998-2000 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN" + SYSTEM "mathml2-qname-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- MathML Qualified Names + + This module is contained in two parts, labeled Section 'A' and 'B': + + Section A declares parameter entities to support namespace- + qualified names, namespace declarations, and name prefixing + for MathML. + + Section B declares parameter entities used to provide + namespace-qualified names for all MathML element types. + + This module is derived from the XHTML Qualified Names Template module. +--> + +<!-- Section A: XHTML XML Namespace Framework :::::::::::::::::::: --> + +<!ENTITY % NS.prefixed "IGNORE" > +<!ENTITY % MATHML.prefixed "%NS.prefixed;" > + +<!-- XLink ............... --> + +<!ENTITY % XLINK.xmlns "http://www.w3.org/1999/xlink" > +<!ENTITY % XLINK.xmlns.attrib + "xmlns:xlink CDATA #FIXED '%XLINK.xmlns;'" +> + +<!-- MathML .............. --> + +<!ENTITY % MATHML.xmlns "http://www.w3.org/1998/Math/MathML" > +<!ENTITY % MATHML.prefix "m" > +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.xmlns.extra.attrib "" > +]]> +<!ENTITY % MATHML.xmlns.extra.attrib + "%XLINK.xmlns.attrib;" > + +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.pfx "%MATHML.prefix;:" > +<!ENTITY % MATHML.xmlns.attrib + "xmlns:%MATHML.prefix; CDATA #FIXED '%MATHML.xmlns;' + %MATHML.xmlns.extra.attrib;" +> +]]> +<!ENTITY % MATHML.pfx "" > +<!ENTITY % MATHML.xmlns.attrib + "xmlns CDATA #FIXED '%MATHML.xmlns;' + %MATHML.xmlns.extra.attrib;" +> + +<![%NS.prefixed;[ +<!ENTITY % XHTML.xmlns.extra.attrib + "%MATHML.xmlns.attrib;" > +]]> +<!ENTITY % XHTML.xmlns.extra.attrib + "%XLINK.xmlns.attrib;" +> + +<!-- Section B: MathML Qualified Names ::::::::::::::::::::::::::::: --> + +<!-- 9. This section declares parameter entities used to provide + namespace-qualified names for all MathML element types. +--> + +<!ENTITY % abs.qname "%MATHML.pfx;abs" > +<!ENTITY % and.qname "%MATHML.pfx;and" > +<!ENTITY % annotation-xml.qname "%MATHML.pfx;annotation-xml" > +<!ENTITY % annotation.qname "%MATHML.pfx;annotation" > +<!ENTITY % apply.qname "%MATHML.pfx;apply" > +<!ENTITY % approx.qname "%MATHML.pfx;approx" > +<!ENTITY % arccos.qname "%MATHML.pfx;arccos" > +<!ENTITY % arccosh.qname "%MATHML.pfx;arccosh" > +<!ENTITY % arccosh.qname "%MATHML.pfx;arccosh" > +<!ENTITY % arccot.qname "%MATHML.pfx;arccot" > +<!ENTITY % arccoth.qname "%MATHML.pfx;arccoth" > +<!ENTITY % arccsc.qname "%MATHML.pfx;arccsc" > +<!ENTITY % arccsch.qname "%MATHML.pfx;arccsch" > +<!ENTITY % arcsec.qname "%MATHML.pfx;arcsec" > +<!ENTITY % arcsech.qname "%MATHML.pfx;arcsech" > +<!ENTITY % arcsin.qname "%MATHML.pfx;arcsin" > +<!ENTITY % arcsinh.qname "%MATHML.pfx;arcsinh" > +<!ENTITY % arctan.qname "%MATHML.pfx;arctan" > +<!ENTITY % arctanh.qname "%MATHML.pfx;arctanh" > +<!ENTITY % arg.qname "%MATHML.pfx;arg" > +<!ENTITY % bvar.qname "%MATHML.pfx;bvar" > +<!ENTITY % card.qname "%MATHML.pfx;card" > +<!ENTITY % cartesianproduct.qname "%MATHML.pfx;cartesianproduct" > +<!ENTITY % ceiling.qname "%MATHML.pfx;ceiling" > +<!ENTITY % ci.qname "%MATHML.pfx;ci" > +<!ENTITY % cn.qname "%MATHML.pfx;cn" > +<!ENTITY % codomain.qname "%MATHML.pfx;codomain" > +<!ENTITY % complexes.qname "%MATHML.pfx;complexes" > +<!ENTITY % compose.qname "%MATHML.pfx;compose" > +<!ENTITY % condition.qname "%MATHML.pfx;condition" > +<!ENTITY % conjugate.qname "%MATHML.pfx;conjugate" > +<!ENTITY % cos.qname "%MATHML.pfx;cos" > +<!ENTITY % cosh.qname "%MATHML.pfx;cosh" > +<!ENTITY % cot.qname "%MATHML.pfx;cot" > +<!ENTITY % coth.qname "%MATHML.pfx;coth" > +<!ENTITY % csc.qname "%MATHML.pfx;csc" > +<!ENTITY % csch.qname "%MATHML.pfx;csch" > +<!ENTITY % csymbol.qname "%MATHML.pfx;csymbol" > +<!ENTITY % curl.qname "%MATHML.pfx;curl" > +<!ENTITY % declare.qname "%MATHML.pfx;declare" > +<!ENTITY % degree.qname "%MATHML.pfx;degree" > +<!ENTITY % determinant.qname "%MATHML.pfx;determinant" > +<!ENTITY % diff.qname "%MATHML.pfx;diff" > +<!ENTITY % divergence.qname "%MATHML.pfx;divergence" > +<!ENTITY % divide.qname "%MATHML.pfx;divide" > +<!ENTITY % domain.qname "%MATHML.pfx;domain" > +<!ENTITY % domainofapplication.qname "%MATHML.pfx;domainofapplication" > +<!ENTITY % emptyset.qname "%MATHML.pfx;emptyset" > +<!ENTITY % eq.qname "%MATHML.pfx;eq" > +<!ENTITY % equivalent.qname "%MATHML.pfx;equivalent" > +<!ENTITY % eulergamma.qname "%MATHML.pfx;eulergamma" > +<!ENTITY % exists.qname "%MATHML.pfx;exists" > +<!ENTITY % exp.qname "%MATHML.pfx;exp" > +<!ENTITY % exponentiale.qname "%MATHML.pfx;exponentiale" > +<!ENTITY % factorial.qname "%MATHML.pfx;factorial" > +<!ENTITY % factorof.qname "%MATHML.pfx;factorof" > +<!ENTITY % false.qname "%MATHML.pfx;false" > +<!ENTITY % floor.qname "%MATHML.pfx;floor" > +<!ENTITY % fn.qname "%MATHML.pfx;fn" > +<!ENTITY % forall.qname "%MATHML.pfx;forall" > +<!ENTITY % gcd.qname "%MATHML.pfx;gcd" > +<!ENTITY % geq.qname "%MATHML.pfx;geq" > +<!ENTITY % grad.qname "%MATHML.pfx;grad" > +<!ENTITY % gt.qname "%MATHML.pfx;gt" > +<!ENTITY % ident.qname "%MATHML.pfx;ident" > +<!ENTITY % image.qname "%MATHML.pfx;image" > +<!ENTITY % imaginary.qname "%MATHML.pfx;imaginary" > +<!ENTITY % imaginaryi.qname "%MATHML.pfx;imaginaryi" > +<!ENTITY % implies.qname "%MATHML.pfx;implies" > +<!ENTITY % in.qname "%MATHML.pfx;in" > +<!ENTITY % infinity.qname "%MATHML.pfx;infinity" > +<!ENTITY % int.qname "%MATHML.pfx;int" > +<!ENTITY % integers.qname "%MATHML.pfx;integers" > +<!ENTITY % intersect.qname "%MATHML.pfx;intersect" > +<!ENTITY % interval.qname "%MATHML.pfx;interval" > +<!ENTITY % inverse.qname "%MATHML.pfx;inverse" > +<!ENTITY % lambda.qname "%MATHML.pfx;lambda" > +<!ENTITY % laplacian.qname "%MATHML.pfx;laplacian" > +<!ENTITY % lcm.qname "%MATHML.pfx;lcm" > +<!ENTITY % leq.qname "%MATHML.pfx;leq" > +<!ENTITY % limit.qname "%MATHML.pfx;limit" > +<!ENTITY % list.qname "%MATHML.pfx;list" > +<!ENTITY % ln.qname "%MATHML.pfx;ln" > +<!ENTITY % log.qname "%MATHML.pfx;log" > +<!ENTITY % logbase.qname "%MATHML.pfx;logbase" > +<!ENTITY % lowlimit.qname "%MATHML.pfx;lowlimit" > +<!ENTITY % lt.qname "%MATHML.pfx;lt" > +<!ENTITY % maction.qname "%MATHML.pfx;maction" > +<!ENTITY % maligngroup.qname "%MATHML.pfx;maligngroup" > +<!ENTITY % malignmark.qname "%MATHML.pfx;malignmark" > +<!ENTITY % math.qname "%MATHML.pfx;math" > +<!ENTITY % matrix.qname "%MATHML.pfx;matrix" > +<!ENTITY % matrixrow.qname "%MATHML.pfx;matrixrow" > +<!ENTITY % max.qname "%MATHML.pfx;max" > +<!ENTITY % mean.qname "%MATHML.pfx;mean" > +<!ENTITY % median.qname "%MATHML.pfx;median" > +<!ENTITY % menclose.qname "%MATHML.pfx;menclose" > +<!ENTITY % merror.qname "%MATHML.pfx;merror" > +<!ENTITY % mfenced.qname "%MATHML.pfx;mfenced" > +<!ENTITY % mfrac.qname "%MATHML.pfx;mfrac" > +<!ENTITY % mglyph.qname "%MATHML.pfx;mglyph" > +<!ENTITY % mi.qname "%MATHML.pfx;mi" > +<!ENTITY % min.qname "%MATHML.pfx;min" > +<!ENTITY % minus.qname "%MATHML.pfx;minus" > +<!ENTITY % mlabeledtr.qname "%MATHML.pfx;mlabeledtr" > +<!ENTITY % mmultiscripts.qname "%MATHML.pfx;mmultiscripts" > +<!ENTITY % mn.qname "%MATHML.pfx;mn" > +<!ENTITY % mo.qname "%MATHML.pfx;mo" > +<!ENTITY % mode.qname "%MATHML.pfx;mode" > +<!ENTITY % moment.qname "%MATHML.pfx;moment" > +<!ENTITY % momentabout.qname "%MATHML.pfx;momentabout" > +<!ENTITY % mover.qname "%MATHML.pfx;mover" > +<!ENTITY % mpadded.qname "%MATHML.pfx;mpadded" > +<!ENTITY % mphantom.qname "%MATHML.pfx;mphantom" > +<!ENTITY % mprescripts.qname "%MATHML.pfx;mprescripts" > +<!ENTITY % mroot.qname "%MATHML.pfx;mroot" > +<!ENTITY % mrow.qname "%MATHML.pfx;mrow" > +<!ENTITY % ms.qname "%MATHML.pfx;ms" > +<!ENTITY % mspace.qname "%MATHML.pfx;mspace" > +<!ENTITY % msqrt.qname "%MATHML.pfx;msqrt" > +<!ENTITY % mstyle.qname "%MATHML.pfx;mstyle" > +<!ENTITY % msub.qname "%MATHML.pfx;msub" > +<!ENTITY % msubsup.qname "%MATHML.pfx;msubsup" > +<!ENTITY % msup.qname "%MATHML.pfx;msup" > +<!ENTITY % mtable.qname "%MATHML.pfx;mtable" > +<!ENTITY % mtd.qname "%MATHML.pfx;mtd" > +<!ENTITY % mtext.qname "%MATHML.pfx;mtext" > +<!ENTITY % mtr.qname "%MATHML.pfx;mtr" > +<!ENTITY % munder.qname "%MATHML.pfx;munder" > +<!ENTITY % munderover.qname "%MATHML.pfx;munderover" > +<!ENTITY % naturalnumbers.qname "%MATHML.pfx;naturalnumbers" > +<!ENTITY % neq.qname "%MATHML.pfx;neq" > +<!ENTITY % none.qname "%MATHML.pfx;none" > +<!ENTITY % not.qname "%MATHML.pfx;not" > +<!ENTITY % notanumber.qname "%MATHML.pfx;notanumber" > +<!ENTITY % notin.qname "%MATHML.pfx;notin" > +<!ENTITY % notprsubset.qname "%MATHML.pfx;notprsubset" > +<!ENTITY % notsubset.qname "%MATHML.pfx;notsubset" > +<!ENTITY % or.qname "%MATHML.pfx;or" > +<!ENTITY % otherwise.qname "%MATHML.pfx;otherwise" > +<!ENTITY % outerproduct.qname "%MATHML.pfx;outerproduct" > +<!ENTITY % partialdiff.qname "%MATHML.pfx;partialdiff" > +<!ENTITY % pi.qname "%MATHML.pfx;pi" > +<!ENTITY % piece.qname "%MATHML.pfx;piece" > +<!ENTITY % piecewise.qname "%MATHML.pfx;piecewise" > +<!ENTITY % plus.qname "%MATHML.pfx;plus" > +<!ENTITY % power.qname "%MATHML.pfx;power" > +<!ENTITY % primes.qname "%MATHML.pfx;primes" > +<!ENTITY % product.qname "%MATHML.pfx;product" > +<!ENTITY % prsubset.qname "%MATHML.pfx;prsubset" > +<!ENTITY % quotient.qname "%MATHML.pfx;quotient" > +<!ENTITY % rationals.qname "%MATHML.pfx;rationals" > +<!ENTITY % real.qname "%MATHML.pfx;real" > +<!ENTITY % reals.qname "%MATHML.pfx;reals" > +<!ENTITY % reln.qname "%MATHML.pfx;reln" > +<!ENTITY % rem.qname "%MATHML.pfx;rem" > +<!ENTITY % root.qname "%MATHML.pfx;root" > +<!ENTITY % scalarproduct.qname "%MATHML.pfx;scalarproduct" > +<!ENTITY % sdev.qname "%MATHML.pfx;sdev" > +<!ENTITY % sec.qname "%MATHML.pfx;sec" > +<!ENTITY % sech.qname "%MATHML.pfx;sech" > +<!ENTITY % selector.qname "%MATHML.pfx;selector" > +<!ENTITY % semantics.qname "%MATHML.pfx;semantics" > +<!ENTITY % sep.qname "%MATHML.pfx;sep" > +<!ENTITY % set.qname "%MATHML.pfx;set" > +<!ENTITY % setdiff.qname "%MATHML.pfx;setdiff" > +<!ENTITY % sin.qname "%MATHML.pfx;sin" > +<!ENTITY % sinh.qname "%MATHML.pfx;sinh" > +<!ENTITY % subset.qname "%MATHML.pfx;subset" > +<!ENTITY % sum.qname "%MATHML.pfx;sum" > +<!ENTITY % tan.qname "%MATHML.pfx;tan" > +<!ENTITY % tanh.qname "%MATHML.pfx;tanh" > +<!ENTITY % tendsto.qname "%MATHML.pfx;tendsto" > +<!ENTITY % times.qname "%MATHML.pfx;times" > +<!ENTITY % transpose.qname "%MATHML.pfx;transpose" > +<!ENTITY % true.qname "%MATHML.pfx;true" > +<!ENTITY % union.qname "%MATHML.pfx;union" > +<!ENTITY % uplimit.qname "%MATHML.pfx;uplimit" > +<!ENTITY % variance.qname "%MATHML.pfx;variance" > +<!ENTITY % vector.qname "%MATHML.pfx;vector" > +<!ENTITY % vectorproduct.qname "%MATHML.pfx;vectorproduct" > +<!ENTITY % xor.qname "%MATHML.pfx;xor" > + + +<!-- ignores subsequent instantiation of this module when + used as external subset rather than module fragment. + NOTE: Do not modify this parameter entity, otherwise + a recursive parsing situation may result. +--> +<!ENTITY % mathml-qname.module "IGNORE" > + +<!-- end of template-qname-1.mod --> + + +<!-- 5. The parameter entity %XHTML.xmlns.extra.attrib; may be + redeclared to contain any non-XHTML namespace declaration + attributes for namespaces embedded in XHTML. The default + is an empty string. XLink should be included here if used + in the DTD. +--> +<!ENTITY % XHTML.xmlns.extra.attrib "" > + +<!-- The remainder of Section A is only followed in XHTML, not extensions. --> + +<!-- Declare a parameter entity %NS.decl.attrib; containing + all XML Namespace declarations used in the DTD, plus the + xmlns declaration for XHTML, its form dependent on whether + prefixing is active. +--> +<![%XHTML.prefixed;[ +<!ENTITY % NS.decl.attrib + "xmlns:%XHTML.prefix; %URI.datatype; #FIXED '%XHTML.xmlns;' + %XHTML.xmlns.extra.attrib;" +> +]]> +<!ENTITY % NS.decl.attrib + "%XHTML.xmlns.extra.attrib;" +> + +<!-- This is a placeholder for future XLink support. +--> +<!ENTITY % XLINK.xmlns.attrib "" > + +<!-- Declare a parameter entity %NS.decl.attrib; containing all + XML namespace declaration attributes used by XHTML, including + a default xmlns attribute when prefixing is inactive. +--> +<![%XHTML.prefixed;[ +<!ENTITY % XHTML.xmlns.attrib + "%NS.decl.attrib; + %XLINK.xmlns.attrib;" +> +]]> +<!ENTITY % XHTML.xmlns.attrib + "xmlns %URI.datatype; #FIXED '%XHTML.xmlns;' + %XLINK.xmlns.attrib;" +> + +<!-- placeholder for qualified name redeclarations --> +<!ENTITY % xhtml-qname.redecl "" > + + +<!-- Section B: XHTML Qualified Names ::::::::::::::::::::::::::::: --> + +<!-- 6. This section declares parameter entities used to provide + namespace-qualified names for all XHTML element types. +--> + +<!-- module: xhtml-applet-1.mod --> +<!ENTITY % applet.qname "%XHTML.pfx;applet" > + +<!-- module: xhtml-base-1.mod --> +<!ENTITY % base.qname "%XHTML.pfx;base" > + +<!-- module: xhtml-bdo-1.mod --> +<!ENTITY % bdo.qname "%XHTML.pfx;bdo" > + +<!-- module: xhtml-blkphras-1.mod --> +<!ENTITY % address.qname "%XHTML.pfx;address" > +<!ENTITY % blockquote.qname "%XHTML.pfx;blockquote" > +<!ENTITY % pre.qname "%XHTML.pfx;pre" > +<!ENTITY % h1.qname "%XHTML.pfx;h1" > +<!ENTITY % h2.qname "%XHTML.pfx;h2" > +<!ENTITY % h3.qname "%XHTML.pfx;h3" > +<!ENTITY % h4.qname "%XHTML.pfx;h4" > +<!ENTITY % h5.qname "%XHTML.pfx;h5" > +<!ENTITY % h6.qname "%XHTML.pfx;h6" > + +<!-- module: xhtml-blkpres-1.mod --> +<!ENTITY % hr.qname "%XHTML.pfx;hr" > + +<!-- module: xhtml-blkstruct-1.mod --> +<!ENTITY % div.qname "%XHTML.pfx;div" > +<!ENTITY % p.qname "%XHTML.pfx;p" > + +<!-- module: xhtml-edit-1.mod --> +<!ENTITY % ins.qname "%XHTML.pfx;ins" > +<!ENTITY % del.qname "%XHTML.pfx;del" > + +<!-- module: xhtml-form-1.mod --> +<!ENTITY % form.qname "%XHTML.pfx;form" > +<!ENTITY % label.qname "%XHTML.pfx;label" > +<!ENTITY % input.qname "%XHTML.pfx;input" > +<!ENTITY % select.qname "%XHTML.pfx;select" > +<!ENTITY % optgroup.qname "%XHTML.pfx;optgroup" > +<!ENTITY % option.qname "%XHTML.pfx;option" > +<!ENTITY % textarea.qname "%XHTML.pfx;textarea" > +<!ENTITY % fieldset.qname "%XHTML.pfx;fieldset" > +<!ENTITY % legend.qname "%XHTML.pfx;legend" > +<!ENTITY % button.qname "%XHTML.pfx;button" > + +<!-- module: xhtml-hypertext-1.mod --> +<!ENTITY % a.qname "%XHTML.pfx;a" > + +<!-- module: xhtml-image-1.mod --> +<!ENTITY % img.qname "%XHTML.pfx;img" > + +<!-- module: xhtml-inlphras-1.mod --> +<!ENTITY % abbr.qname "%XHTML.pfx;abbr" > +<!ENTITY % acronym.qname "%XHTML.pfx;acronym" > +<!ENTITY % cite.qname "%XHTML.pfx;cite" > +<!ENTITY % code.qname "%XHTML.pfx;code" > +<!ENTITY % dfn.qname "%XHTML.pfx;dfn" > +<!ENTITY % em.qname "%XHTML.pfx;em" > +<!ENTITY % kbd.qname "%XHTML.pfx;kbd" > +<!ENTITY % q.qname "%XHTML.pfx;q" > +<!ENTITY % samp.qname "%XHTML.pfx;samp" > +<!ENTITY % strong.qname "%XHTML.pfx;strong" > +<!ENTITY % var.qname "%XHTML.pfx;var" > + +<!-- module: xhtml-inlpres-1.mod --> +<!ENTITY % b.qname "%XHTML.pfx;b" > +<!ENTITY % big.qname "%XHTML.pfx;big" > +<!ENTITY % i.qname "%XHTML.pfx;i" > +<!ENTITY % small.qname "%XHTML.pfx;small" > +<!ENTITY % sub.qname "%XHTML.pfx;sub" > +<!ENTITY % sup.qname "%XHTML.pfx;sup" > +<!ENTITY % tt.qname "%XHTML.pfx;tt" > + +<!-- module: xhtml-inlstruct-1.mod --> +<!ENTITY % br.qname "%XHTML.pfx;br" > +<!ENTITY % span.qname "%XHTML.pfx;span" > + +<!-- module: xhtml-ismap-1.mod (also csismap, ssismap) --> +<!ENTITY % map.qname "%XHTML.pfx;map" > +<!ENTITY % area.qname "%XHTML.pfx;area" > + +<!-- module: xhtml-link-1.mod --> +<!ENTITY % link.qname "%XHTML.pfx;link" > + +<!-- module: xhtml-list-1.mod --> +<!ENTITY % dl.qname "%XHTML.pfx;dl" > +<!ENTITY % dt.qname "%XHTML.pfx;dt" > +<!ENTITY % dd.qname "%XHTML.pfx;dd" > +<!ENTITY % ol.qname "%XHTML.pfx;ol" > +<!ENTITY % ul.qname "%XHTML.pfx;ul" > +<!ENTITY % li.qname "%XHTML.pfx;li" > + +<!-- module: xhtml-meta-1.mod --> +<!ENTITY % meta.qname "%XHTML.pfx;meta" > + +<!-- module: xhtml-param-1.mod --> +<!ENTITY % param.qname "%XHTML.pfx;param" > + +<!-- module: xhtml-object-1.mod --> +<!ENTITY % object.qname "%XHTML.pfx;object" > + +<!-- module: xhtml-script-1.mod --> +<!ENTITY % script.qname "%XHTML.pfx;script" > +<!ENTITY % noscript.qname "%XHTML.pfx;noscript" > + +<!-- module: xhtml-struct-1.mod --> +<!ENTITY % html.qname "%XHTML.pfx;html" > +<!ENTITY % head.qname "%XHTML.pfx;head" > +<!ENTITY % title.qname "%XHTML.pfx;title" > +<!ENTITY % body.qname "%XHTML.pfx;body" > + +<!-- module: xhtml-style-1.mod --> +<!ENTITY % style.qname "%XHTML.pfx;style" > + +<!-- module: xhtml-table-1.mod --> +<!ENTITY % table.qname "%XHTML.pfx;table" > +<!ENTITY % caption.qname "%XHTML.pfx;caption" > +<!ENTITY % thead.qname "%XHTML.pfx;thead" > +<!ENTITY % tfoot.qname "%XHTML.pfx;tfoot" > +<!ENTITY % tbody.qname "%XHTML.pfx;tbody" > +<!ENTITY % colgroup.qname "%XHTML.pfx;colgroup" > +<!ENTITY % col.qname "%XHTML.pfx;col" > +<!ENTITY % tr.qname "%XHTML.pfx;tr" > +<!ENTITY % th.qname "%XHTML.pfx;th" > +<!ENTITY % td.qname "%XHTML.pfx;td" > + +<!-- module: xhtml-ruby-1.mod --> + +<!ENTITY % ruby.qname "%XHTML.pfx;ruby" > +<!ENTITY % rbc.qname "%XHTML.pfx;rbc" > +<!ENTITY % rtc.qname "%XHTML.pfx;rtc" > +<!ENTITY % rb.qname "%XHTML.pfx;rb" > +<!ENTITY % rt.qname "%XHTML.pfx;rt" > +<!ENTITY % rp.qname "%XHTML.pfx;rp" > + +<!-- Provisional XHTML 2.0 Qualified Names ...................... --> + +<!-- module: xhtml-image-2.mod --> +<!ENTITY % alt.qname "%XHTML.pfx;alt" > + +<!-- end of xhtml-qname-1.mod --> +]]> + +<!ENTITY % xhtml-events.module "IGNORE" > +<![%xhtml-events.module;[ +<!ENTITY % xhtml-events.mod + PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN" + "xhtml-events-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Intrinsic Events Module ....................................... --> +<!-- file: xhtml-events-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-events-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Intrinsic Event Attributes + + These are the event attributes defined in HTML 4, + Section 18.2.3 "Intrinsic Events". This module must be + instantiated prior to the Attributes Module but after + the Datatype Module in the Modular Framework module. + + "Note: Authors of HTML documents are advised that changes + are likely to occur in the realm of intrinsic events + (e.g., how scripts are bound to events). Research in + this realm is carried on by members of the W3C Document + Object Model Working Group (see the W3C Web site at + http://www.w3.org/ for more information)." +--> +<!-- NOTE: Because the ATTLIST declarations in this module occur + before their respective ELEMENT declarations in other + modules, there may be a dependency on this module that + should be considered if any of the parameter entities used + for element type names (eg., %a.qname;) are redeclared. +--> + +<!ENTITY % Events.attrib + "onclick %Script.datatype; #IMPLIED + ondblclick %Script.datatype; #IMPLIED + onmousedown %Script.datatype; #IMPLIED + onmouseup %Script.datatype; #IMPLIED + onmouseover %Script.datatype; #IMPLIED + onmousemove %Script.datatype; #IMPLIED + onmouseout %Script.datatype; #IMPLIED + onkeypress %Script.datatype; #IMPLIED + onkeydown %Script.datatype; #IMPLIED + onkeyup %Script.datatype; #IMPLIED" +> + +<!-- additional attributes on anchor element +--> +<!ATTLIST %a.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED +> + +<!-- additional attributes on form element +--> +<!ATTLIST %form.qname; + onsubmit %Script.datatype; #IMPLIED + onreset %Script.datatype; #IMPLIED +> + +<!-- additional attributes on label element +--> +<!ATTLIST %label.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED +> + +<!-- additional attributes on input element +--> +<!ATTLIST %input.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED + onselect %Script.datatype; #IMPLIED + onchange %Script.datatype; #IMPLIED +> + +<!-- additional attributes on select element +--> +<!ATTLIST %select.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED + onchange %Script.datatype; #IMPLIED +> + +<!-- additional attributes on textarea element +--> +<!ATTLIST %textarea.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED + onselect %Script.datatype; #IMPLIED + onchange %Script.datatype; #IMPLIED +> + +<!-- additional attributes on button element +--> +<!ATTLIST %button.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED +> + +<!-- additional attributes on body element +--> +<!ATTLIST %body.qname; + onload %Script.datatype; #IMPLIED + onunload %Script.datatype; #IMPLIED +> + +<!-- additional attributes on area element +--> +<!ATTLIST %area.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED +> + +<!-- end of xhtml-events-1.mod --> +]]> + +<!ENTITY % xhtml-attribs.module "INCLUDE" > +<![%xhtml-attribs.module;[ +<!ENTITY % xhtml-attribs.mod + PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN" + "xhtml-attribs-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Common Attributes Module ...................................... --> +<!-- file: xhtml-attribs-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-attribs-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Common Attributes + + This module declares many of the common attributes for the XHTML DTD. + %NS.decl.attrib; is declared in the XHTML Qname module. +--> + +<!ENTITY % id.attrib + "id ID #IMPLIED" +> + +<!ENTITY % class.attrib + "class NMTOKENS #IMPLIED" +> + +<!ENTITY % title.attrib + "title %Text.datatype; #IMPLIED" +> + +<!ENTITY % Core.extra.attrib "" > + +<!ENTITY % Core.attrib + "%XHTML.xmlns.attrib; + %id.attrib; + %class.attrib; + %title.attrib; + %Core.extra.attrib;" +> + +<!ENTITY % lang.attrib + "xml:lang %LanguageCode.datatype; #IMPLIED" +> + +<![%XHTML.bidi;[ +<!ENTITY % dir.attrib + "dir ( ltr | rtl ) #IMPLIED" +> + +<!ENTITY % I18n.attrib + "%dir.attrib; + %lang.attrib;" +> + +]]> +<!ENTITY % I18n.attrib + "%lang.attrib;" +> + +<!ENTITY % Common.extra.attrib "" > + +<!-- intrinsic event attributes declared previously +--> +<!ENTITY % Events.attrib "" > + +<!ENTITY % Common.attrib + "%Core.attrib; + %I18n.attrib; + %Events.attrib; + %Common.extra.attrib;" +> + +<!-- end of xhtml-attribs-1.mod --> +]]> + +<!-- placeholder for content model redeclarations --> +<!ENTITY % xhtml-model.redecl "" > + + +<!ENTITY % xhtml-model.module "INCLUDE" > +<![%xhtml-model.module;[ +<!-- instantiate the Document Model module declared in the DTD driver +--> +<!-- ....................................................................... --> +<!-- XHTML 1.1 Document Model Module ...................................... --> +<!-- file: xhtml11-model-1.mod + + This is XHTML 1.1, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml11/DTD/xhtml11-model-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- XHTML 1.1 Document Model + + This module describes the groupings of elements that make up + common content models for XHTML elements. + + XHTML has three basic content models: + + %Inline.mix; character-level elements + %Block.mix; block-like elements, eg., paragraphs and lists + %Flow.mix; any block or inline elements + + Any parameter entities declared in this module may be used + to create element content models, but the above three are + considered 'global' (insofar as that term applies here). + + The reserved word '#PCDATA' (indicating a text string) is now + included explicitly with each element declaration that is + declared as mixed content, as XML requires that this token + occur first in a content model specification. +--> +<!-- Extending the Model + + While in some cases this module may need to be rewritten to + accommodate changes to the document model, minor extensions + may be accomplished by redeclaring any of the three *.extra; + parameter entities to contain extension element types as follows: + + %Misc.extra; whose parent may be any block or + inline element. + + %Inline.extra; whose parent may be any inline element. + + %Block.extra; whose parent may be any block element. + + If used, these parameter entities must be an OR-separated + list beginning with an OR separator ("|"), eg., "| a | b | c" + + All block and inline *.class parameter entities not part + of the *struct.class classes begin with "| " to allow for + exclusion from mixes. +--> + +<!-- .............. Optional Elements in head .................. --> + +<!ENTITY % HeadOpts.mix + "( %script.qname; | %style.qname; | %meta.qname; + | %link.qname; | %object.qname; )*" +> + +<!-- ................. Miscellaneous Elements .................. --> + +<!-- ins and del are used to denote editing changes +--> +<!ENTITY % Edit.class "| %ins.qname; | %del.qname;" > + +<!-- script and noscript are used to contain scripts + and alternative content +--> +<!ENTITY % Script.class "| %script.qname; | %noscript.qname;" > + +<!ENTITY % Misc.extra "" > + +<!-- These elements are neither block nor inline, and can + essentially be used anywhere in the document body. +--> +<!ENTITY % Misc.class + "%Edit.class; + %Script.class; + %Misc.extra;" +> + +<!-- .................... Inline Elements ...................... --> + +<!ENTITY % InlStruct.class "%br.qname; | %span.qname;" > + +<!ENTITY % InlPhras.class + "| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname; + | %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname; + | %abbr.qname; | %acronym.qname; | %q.qname;" > + +<!ENTITY % InlPres.class + "| %tt.qname; | %i.qname; | %b.qname; | %big.qname; + | %small.qname; | %sub.qname; | %sup.qname;" > + +<!ENTITY % I18n.class "| %bdo.qname;" > + +<!ENTITY % Anchor.class "| %a.qname;" > + +<!ENTITY % InlSpecial.class + "| %img.qname; | %map.qname; + | %object.qname;" > + +<!ENTITY % InlForm.class + "| %input.qname; | %select.qname; | %textarea.qname; + | %label.qname; | %button.qname;" > + +<!ENTITY % Inline.extra "" > + +<!ENTITY % Ruby.class "| %ruby.qname;" > + +<!-- %Inline.class; includes all inline elements, + used as a component in mixes +--> +<!ENTITY % Inline.class + "%InlStruct.class; + %InlPhras.class; + %InlPres.class; + %I18n.class; + %Anchor.class; + %InlSpecial.class; + %InlForm.class; + %Ruby.class; + %Inline.extra;" +> + +<!-- %InlNoRuby.class; includes all inline elements + except ruby, used as a component in mixes +--> +<!ENTITY % InlNoRuby.class + "%InlStruct.class; + %InlPhras.class; + %InlPres.class; + %I18n.class; + %Anchor.class; + %InlSpecial.class; + %InlForm.class; + %Inline.extra;" +> + +<!-- %NoRuby.content; includes all inlines except ruby +--> +<!ENTITY % NoRuby.content + "( #PCDATA + | %InlNoRuby.class; + %Misc.class; )*" +> + +<!-- %InlNoAnchor.class; includes all non-anchor inlines, + used as a component in mixes +--> +<!ENTITY % InlNoAnchor.class + "%InlStruct.class; + %InlPhras.class; + %InlPres.class; + %I18n.class; + %InlSpecial.class; + %InlForm.class; + %Ruby.class; + %Inline.extra;" +> + +<!-- %InlNoAnchor.mix; includes all non-anchor inlines +--> +<!ENTITY % InlNoAnchor.mix + "%InlNoAnchor.class; + %Misc.class;" +> + +<!-- %Inline.mix; includes all inline elements, including %Misc.class; +--> +<!ENTITY % Inline.mix + "%Inline.class; + %Misc.class;" +> + +<!-- ..................... Block Elements ...................... --> + +<!-- In the HTML 4.0 DTD, heading and list elements were included + in the %block; parameter entity. The %Heading.class; and + %List.class; parameter entities must now be included explicitly + on element declarations where desired. +--> + +<!ENTITY % Heading.class + "%h1.qname; | %h2.qname; | %h3.qname; + | %h4.qname; | %h5.qname; | %h6.qname;" > + +<!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" > + +<!ENTITY % Table.class "| %table.qname;" > + +<!ENTITY % Form.class "| %form.qname;" > + +<!ENTITY % Fieldset.class "| %fieldset.qname;" > + +<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" > + +<!ENTITY % BlkPhras.class + "| %pre.qname; | %blockquote.qname; | %address.qname;" > + +<!ENTITY % BlkPres.class "| %hr.qname;" > + +<!ENTITY % BlkSpecial.class + "%Table.class; + %Form.class; + %Fieldset.class;" +> + +<!ENTITY % Block.extra "" > + +<!-- %Block.class; includes all block elements, + used as an component in mixes +--> +<!ENTITY % Block.class + "%BlkStruct.class; + %BlkPhras.class; + %BlkPres.class; + %BlkSpecial.class; + %Block.extra;" +> + +<!-- %Block.mix; includes all block elements plus %Misc.class; +--> +<!ENTITY % Block.mix + "%Heading.class; + | %List.class; + | %Block.class; + %Misc.class;" +> + +<!-- ................ All Content Elements .................. --> + +<!-- %Flow.mix; includes all text content, block and inline +--> +<!ENTITY % Flow.mix + "%Heading.class; + | %List.class; + | %Block.class; + | %Inline.class; + %Misc.class;" +> + +<!-- end of xhtml11-model-1.mod --> +]]> + +<!ENTITY % xhtml-charent.module "INCLUDE" > +<![%xhtml-charent.module;[ +<!ENTITY % xhtml-charent.mod + PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN" + "xhtml-charent-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Character Entities Module ......................................... --> +<!-- file: xhtml-charent-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-charent-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Character Entities for XHTML + + This module declares the set of character entities for XHTML, + including the Latin 1, Symbol and Special character collections. +--> + +<!ENTITY % xhtml-lat1 + PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" + "xhtml-lat1.ent" > +<!-- Portions (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. +--> +<!-- Character entity set. Typical invocation: + <!ENTITY % HTMLlat1 PUBLIC + "-//W3C//ENTITIES Latin 1 for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"> + %HTMLlat1; +--> + +<!ENTITY nbsp " "> <!-- no-break space = non-breaking space, + U+00A0 ISOnum --> +<!ENTITY iexcl "¡"> <!-- inverted exclamation mark, U+00A1 ISOnum --> +<!ENTITY cent "¢"> <!-- cent sign, U+00A2 ISOnum --> +<!ENTITY pound "£"> <!-- pound sign, U+00A3 ISOnum --> +<!ENTITY curren "¤"> <!-- currency sign, U+00A4 ISOnum --> +<!ENTITY yen "¥"> <!-- yen sign = yuan sign, U+00A5 ISOnum --> +<!ENTITY brvbar "¦"> <!-- broken bar = broken vertical bar, + U+00A6 ISOnum --> +<!ENTITY sect "§"> <!-- section sign, U+00A7 ISOnum --> +<!ENTITY uml "¨"> <!-- diaeresis = spacing diaeresis, + U+00A8 ISOdia --> +<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum --> +<!ENTITY ordf "ª"> <!-- feminine ordinal indicator, U+00AA ISOnum --> +<!ENTITY laquo "«"> <!-- left-pointing double angle quotation mark + = left pointing guillemet, U+00AB ISOnum --> +<!ENTITY not "¬"> <!-- not sign = discretionary hyphen, + U+00AC ISOnum --> +<!ENTITY shy "­"> <!-- soft hyphen = discretionary hyphen, + U+00AD ISOnum --> +<!ENTITY reg "®"> <!-- registered sign = registered trade mark sign, + U+00AE ISOnum --> +<!ENTITY macr "¯"> <!-- macron = spacing macron = overline + = APL overbar, U+00AF ISOdia --> +<!ENTITY deg "°"> <!-- degree sign, U+00B0 ISOnum --> +<!ENTITY plusmn "±"> <!-- plus-minus sign = plus-or-minus sign, + U+00B1 ISOnum --> +<!ENTITY sup2 "²"> <!-- superscript two = superscript digit two + = squared, U+00B2 ISOnum --> +<!ENTITY sup3 "³"> <!-- superscript three = superscript digit three + = cubed, U+00B3 ISOnum --> +<!ENTITY acute "´"> <!-- acute accent = spacing acute, + U+00B4 ISOdia --> +<!ENTITY micro "µ"> <!-- micro sign, U+00B5 ISOnum --> +<!ENTITY para "¶"> <!-- pilcrow sign = paragraph sign, + U+00B6 ISOnum --> +<!ENTITY middot "·"> <!-- middle dot = Georgian comma + = Greek middle dot, U+00B7 ISOnum --> +<!ENTITY cedil "¸"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia --> +<!ENTITY sup1 "¹"> <!-- superscript one = superscript digit one, + U+00B9 ISOnum --> +<!ENTITY ordm "º"> <!-- masculine ordinal indicator, + U+00BA ISOnum --> +<!ENTITY raquo "»"> <!-- right-pointing double angle quotation mark + = right pointing guillemet, U+00BB ISOnum --> +<!ENTITY frac14 "¼"> <!-- vulgar fraction one quarter + = fraction one quarter, U+00BC ISOnum --> +<!ENTITY frac12 "½"> <!-- vulgar fraction one half + = fraction one half, U+00BD ISOnum --> +<!ENTITY frac34 "¾"> <!-- vulgar fraction three quarters + = fraction three quarters, U+00BE ISOnum --> +<!ENTITY iquest "¿"> <!-- inverted question mark + = turned question mark, U+00BF ISOnum --> +<!ENTITY Agrave "À"> <!-- latin capital letter A with grave + = latin capital letter A grave, + U+00C0 ISOlat1 --> +<!ENTITY Aacute "Á"> <!-- latin capital letter A with acute, + U+00C1 ISOlat1 --> +<!ENTITY Acirc "Â"> <!-- latin capital letter A with circumflex, + U+00C2 ISOlat1 --> +<!ENTITY Atilde "Ã"> <!-- latin capital letter A with tilde, + U+00C3 ISOlat1 --> +<!ENTITY Auml "Ä"> <!-- latin capital letter A with diaeresis, + U+00C4 ISOlat1 --> +<!ENTITY Aring "Å"> <!-- latin capital letter A with ring above + = latin capital letter A ring, + U+00C5 ISOlat1 --> +<!ENTITY AElig "Æ"> <!-- latin capital letter AE + = latin capital ligature AE, + U+00C6 ISOlat1 --> +<!ENTITY Ccedil "Ç"> <!-- latin capital letter C with cedilla, + U+00C7 ISOlat1 --> +<!ENTITY Egrave "È"> <!-- latin capital letter E with grave, + U+00C8 ISOlat1 --> +<!ENTITY Eacute "É"> <!-- latin capital letter E with acute, + U+00C9 ISOlat1 --> +<!ENTITY Ecirc "Ê"> <!-- latin capital letter E with circumflex, + U+00CA ISOlat1 --> +<!ENTITY Euml "Ë"> <!-- latin capital letter E with diaeresis, + U+00CB ISOlat1 --> +<!ENTITY Igrave "Ì"> <!-- latin capital letter I with grave, + U+00CC ISOlat1 --> +<!ENTITY Iacute "Í"> <!-- latin capital letter I with acute, + U+00CD ISOlat1 --> +<!ENTITY Icirc "Î"> <!-- latin capital letter I with circumflex, + U+00CE ISOlat1 --> +<!ENTITY Iuml "Ï"> <!-- latin capital letter I with diaeresis, + U+00CF ISOlat1 --> +<!ENTITY ETH "Ð"> <!-- latin capital letter ETH, U+00D0 ISOlat1 --> +<!ENTITY Ntilde "Ñ"> <!-- latin capital letter N with tilde, + U+00D1 ISOlat1 --> +<!ENTITY Ograve "Ò"> <!-- latin capital letter O with grave, + U+00D2 ISOlat1 --> +<!ENTITY Oacute "Ó"> <!-- latin capital letter O with acute, + U+00D3 ISOlat1 --> +<!ENTITY Ocirc "Ô"> <!-- latin capital letter O with circumflex, + U+00D4 ISOlat1 --> +<!ENTITY Otilde "Õ"> <!-- latin capital letter O with tilde, + U+00D5 ISOlat1 --> +<!ENTITY Ouml "Ö"> <!-- latin capital letter O with diaeresis, + U+00D6 ISOlat1 --> +<!ENTITY times "×"> <!-- multiplication sign, U+00D7 ISOnum --> +<!ENTITY Oslash "Ø"> <!-- latin capital letter O with stroke + = latin capital letter O slash, + U+00D8 ISOlat1 --> +<!ENTITY Ugrave "Ù"> <!-- latin capital letter U with grave, + U+00D9 ISOlat1 --> +<!ENTITY Uacute "Ú"> <!-- latin capital letter U with acute, + U+00DA ISOlat1 --> +<!ENTITY Ucirc "Û"> <!-- latin capital letter U with circumflex, + U+00DB ISOlat1 --> +<!ENTITY Uuml "Ü"> <!-- latin capital letter U with diaeresis, + U+00DC ISOlat1 --> +<!ENTITY Yacute "Ý"> <!-- latin capital letter Y with acute, + U+00DD ISOlat1 --> +<!ENTITY THORN "Þ"> <!-- latin capital letter THORN, + U+00DE ISOlat1 --> +<!ENTITY szlig "ß"> <!-- latin small letter sharp s = ess-zed, + U+00DF ISOlat1 --> +<!ENTITY agrave "à"> <!-- latin small letter a with grave + = latin small letter a grave, + U+00E0 ISOlat1 --> +<!ENTITY aacute "á"> <!-- latin small letter a with acute, + U+00E1 ISOlat1 --> +<!ENTITY acirc "â"> <!-- latin small letter a with circumflex, + U+00E2 ISOlat1 --> +<!ENTITY atilde "ã"> <!-- latin small letter a with tilde, + U+00E3 ISOlat1 --> +<!ENTITY auml "ä"> <!-- latin small letter a with diaeresis, + U+00E4 ISOlat1 --> +<!ENTITY aring "å"> <!-- latin small letter a with ring above + = latin small letter a ring, + U+00E5 ISOlat1 --> +<!ENTITY aelig "æ"> <!-- latin small letter ae + = latin small ligature ae, U+00E6 ISOlat1 --> +<!ENTITY ccedil "ç"> <!-- latin small letter c with cedilla, + U+00E7 ISOlat1 --> +<!ENTITY egrave "è"> <!-- latin small letter e with grave, + U+00E8 ISOlat1 --> +<!ENTITY eacute "é"> <!-- latin small letter e with acute, + U+00E9 ISOlat1 --> +<!ENTITY ecirc "ê"> <!-- latin small letter e with circumflex, + U+00EA ISOlat1 --> +<!ENTITY euml "ë"> <!-- latin small letter e with diaeresis, + U+00EB ISOlat1 --> +<!ENTITY igrave "ì"> <!-- latin small letter i with grave, + U+00EC ISOlat1 --> +<!ENTITY iacute "í"> <!-- latin small letter i with acute, + U+00ED ISOlat1 --> +<!ENTITY icirc "î"> <!-- latin small letter i with circumflex, + U+00EE ISOlat1 --> +<!ENTITY iuml "ï"> <!-- latin small letter i with diaeresis, + U+00EF ISOlat1 --> +<!ENTITY eth "ð"> <!-- latin small letter eth, U+00F0 ISOlat1 --> +<!ENTITY ntilde "ñ"> <!-- latin small letter n with tilde, + U+00F1 ISOlat1 --> +<!ENTITY ograve "ò"> <!-- latin small letter o with grave, + U+00F2 ISOlat1 --> +<!ENTITY oacute "ó"> <!-- latin small letter o with acute, + U+00F3 ISOlat1 --> +<!ENTITY ocirc "ô"> <!-- latin small letter o with circumflex, + U+00F4 ISOlat1 --> +<!ENTITY otilde "õ"> <!-- latin small letter o with tilde, + U+00F5 ISOlat1 --> +<!ENTITY ouml "ö"> <!-- latin small letter o with diaeresis, + U+00F6 ISOlat1 --> +<!ENTITY divide "÷"> <!-- division sign, U+00F7 ISOnum --> +<!ENTITY oslash "ø"> <!-- latin small letter o with stroke, + = latin small letter o slash, + U+00F8 ISOlat1 --> +<!ENTITY ugrave "ù"> <!-- latin small letter u with grave, + U+00F9 ISOlat1 --> +<!ENTITY uacute "ú"> <!-- latin small letter u with acute, + U+00FA ISOlat1 --> +<!ENTITY ucirc "û"> <!-- latin small letter u with circumflex, + U+00FB ISOlat1 --> +<!ENTITY uuml "ü"> <!-- latin small letter u with diaeresis, + U+00FC ISOlat1 --> +<!ENTITY yacute "ý"> <!-- latin small letter y with acute, + U+00FD ISOlat1 --> +<!ENTITY thorn "þ"> <!-- latin small letter thorn with, + U+00FE ISOlat1 --> +<!ENTITY yuml "ÿ"> <!-- latin small letter y with diaeresis, + U+00FF ISOlat1 --> + + +<!ENTITY % xhtml-symbol + PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN" + "xhtml-symbol.ent" > +<!-- Mathematical, Greek and Symbolic characters for HTML --> + +<!-- Character entity set. Typical invocation: + <!ENTITY % HTMLsymbol PUBLIC + "-//W3C//ENTITIES Symbols for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"> + %HTMLsymbol; +--> + +<!-- Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. +--> + +<!-- Relevant ISO entity set is given unless names are newly introduced. + New names (i.e., not in ISO 8879 list) do not clash with any + existing ISO 8879 entity names. ISO 10646 character numbers + are given for each character, in hex. values are decimal + conversions of the ISO 10646 values and refer to the document + character set. Names are Unicode names. +--> + +<!-- Latin Extended-B --> +<!ENTITY fnof "ƒ"> <!-- latin small f with hook = function + = florin, U+0192 ISOtech --> + +<!-- Greek --> +<!ENTITY Alpha "Α"> <!-- greek capital letter alpha, U+0391 --> +<!ENTITY Beta "Β"> <!-- greek capital letter beta, U+0392 --> +<!ENTITY Gamma "Γ"> <!-- greek capital letter gamma, + U+0393 ISOgrk3 --> +<!ENTITY Delta "Δ"> <!-- greek capital letter delta, + U+0394 ISOgrk3 --> +<!ENTITY Epsilon "Ε"> <!-- greek capital letter epsilon, U+0395 --> +<!ENTITY Zeta "Ζ"> <!-- greek capital letter zeta, U+0396 --> +<!ENTITY Eta "Η"> <!-- greek capital letter eta, U+0397 --> +<!ENTITY Theta "Θ"> <!-- greek capital letter theta, + U+0398 ISOgrk3 --> +<!ENTITY Iota "Ι"> <!-- greek capital letter iota, U+0399 --> +<!ENTITY Kappa "Κ"> <!-- greek capital letter kappa, U+039A --> +<!ENTITY Lambda "Λ"> <!-- greek capital letter lambda, + U+039B ISOgrk3 --> +<!ENTITY Mu "Μ"> <!-- greek capital letter mu, U+039C --> +<!ENTITY Nu "Ν"> <!-- greek capital letter nu, U+039D --> +<!ENTITY Xi "Ξ"> <!-- greek capital letter xi, U+039E ISOgrk3 --> +<!ENTITY Omicron "Ο"> <!-- greek capital letter omicron, U+039F --> +<!ENTITY Pi "Π"> <!-- greek capital letter pi, U+03A0 ISOgrk3 --> +<!ENTITY Rho "Ρ"> <!-- greek capital letter rho, U+03A1 --> +<!-- there is no Sigmaf, and no U+03A2 character either --> +<!ENTITY Sigma "Σ"> <!-- greek capital letter sigma, + U+03A3 ISOgrk3 --> +<!ENTITY Tau "Τ"> <!-- greek capital letter tau, U+03A4 --> +<!ENTITY Upsilon "Υ"> <!-- greek capital letter upsilon, + U+03A5 ISOgrk3 --> +<!ENTITY Phi "Φ"> <!-- greek capital letter phi, + U+03A6 ISOgrk3 --> +<!ENTITY Chi "Χ"> <!-- greek capital letter chi, U+03A7 --> +<!ENTITY Psi "Ψ"> <!-- greek capital letter psi, + U+03A8 ISOgrk3 --> +<!ENTITY Omega "Ω"> <!-- greek capital letter omega, + U+03A9 ISOgrk3 --> + +<!ENTITY alpha "α"> <!-- greek small letter alpha, + U+03B1 ISOgrk3 --> +<!ENTITY beta "β"> <!-- greek small letter beta, U+03B2 ISOgrk3 --> +<!ENTITY gamma "γ"> <!-- greek small letter gamma, + U+03B3 ISOgrk3 --> +<!ENTITY delta "δ"> <!-- greek small letter delta, + U+03B4 ISOgrk3 --> +<!ENTITY epsilon "ε"> <!-- greek small letter epsilon, + U+03B5 ISOgrk3 --> +<!ENTITY zeta "ζ"> <!-- greek small letter zeta, U+03B6 ISOgrk3 --> +<!ENTITY eta "η"> <!-- greek small letter eta, U+03B7 ISOgrk3 --> +<!ENTITY theta "θ"> <!-- greek small letter theta, + U+03B8 ISOgrk3 --> +<!ENTITY iota "ι"> <!-- greek small letter iota, U+03B9 ISOgrk3 --> +<!ENTITY kappa "κ"> <!-- greek small letter kappa, + U+03BA ISOgrk3 --> +<!ENTITY lambda "λ"> <!-- greek small letter lambda, + U+03BB ISOgrk3 --> +<!ENTITY mu "μ"> <!-- greek small letter mu, U+03BC ISOgrk3 --> +<!ENTITY nu "ν"> <!-- greek small letter nu, U+03BD ISOgrk3 --> +<!ENTITY xi "ξ"> <!-- greek small letter xi, U+03BE ISOgrk3 --> +<!ENTITY omicron "ο"> <!-- greek small letter omicron, U+03BF NEW --> +<!ENTITY pi "π"> <!-- greek small letter pi, U+03C0 ISOgrk3 --> +<!ENTITY rho "ρ"> <!-- greek small letter rho, U+03C1 ISOgrk3 --> +<!ENTITY sigmaf "ς"> <!-- greek small letter final sigma, + U+03C2 ISOgrk3 --> +<!ENTITY sigma "σ"> <!-- greek small letter sigma, + U+03C3 ISOgrk3 --> +<!ENTITY tau "τ"> <!-- greek small letter tau, U+03C4 ISOgrk3 --> +<!ENTITY upsilon "υ"> <!-- greek small letter upsilon, + U+03C5 ISOgrk3 --> +<!ENTITY phi "φ"> <!-- greek small letter phi, U+03C6 ISOgrk3 --> +<!ENTITY chi "χ"> <!-- greek small letter chi, U+03C7 ISOgrk3 --> +<!ENTITY psi "ψ"> <!-- greek small letter psi, U+03C8 ISOgrk3 --> +<!ENTITY omega "ω"> <!-- greek small letter omega, + U+03C9 ISOgrk3 --> +<!ENTITY thetasym "ϑ"> <!-- greek small letter theta symbol, + U+03D1 NEW --> +<!ENTITY upsih "ϒ"> <!-- greek upsilon with hook symbol, + U+03D2 NEW --> +<!ENTITY piv "ϖ"> <!-- greek pi symbol, U+03D6 ISOgrk3 --> + +<!-- General Punctuation --> +<!ENTITY bull "•"> <!-- bullet = black small circle, + U+2022 ISOpub --> +<!-- bullet is NOT the same as bullet operator, U+2219 --> +<!ENTITY hellip "…"> <!-- horizontal ellipsis = three dot leader, + U+2026 ISOpub --> +<!ENTITY prime "′"> <!-- prime = minutes = feet, U+2032 ISOtech --> +<!ENTITY Prime "″"> <!-- double prime = seconds = inches, + U+2033 ISOtech --> +<!ENTITY oline "‾"> <!-- overline = spacing overscore, + U+203E NEW --> +<!ENTITY frasl "⁄"> <!-- fraction slash, U+2044 NEW --> + +<!-- Letterlike Symbols --> +<!ENTITY weierp "℘"> <!-- script capital P = power set + = Weierstrass p, U+2118 ISOamso --> +<!ENTITY image "ℑ"> <!-- blackletter capital I = imaginary part, + U+2111 ISOamso --> +<!ENTITY real "ℜ"> <!-- blackletter capital R = real part symbol, + U+211C ISOamso --> +<!ENTITY trade "™"> <!-- trade mark sign, U+2122 ISOnum --> +<!ENTITY alefsym "ℵ"> <!-- alef symbol = first transfinite cardinal, + U+2135 NEW --> +<!-- alef symbol is NOT the same as hebrew letter alef, + U+05D0 although the same glyph could be used to depict both characters --> + +<!-- Arrows --> +<!ENTITY larr "←"> <!-- leftwards arrow, U+2190 ISOnum --> +<!ENTITY uarr "↑"> <!-- upwards arrow, U+2191 ISOnum--> +<!ENTITY rarr "→"> <!-- rightwards arrow, U+2192 ISOnum --> +<!ENTITY darr "↓"> <!-- downwards arrow, U+2193 ISOnum --> +<!ENTITY harr "↔"> <!-- left right arrow, U+2194 ISOamsa --> +<!ENTITY crarr "↵"> <!-- downwards arrow with corner leftwards + = carriage return, U+21B5 NEW --> +<!ENTITY lArr "⇐"> <!-- leftwards double arrow, U+21D0 ISOtech --> +<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow + but also does not have any other character for that function. So ? lArr can + be used for 'is implied by' as ISOtech suggests --> +<!ENTITY uArr "⇑"> <!-- upwards double arrow, U+21D1 ISOamsa --> +<!ENTITY rArr "⇒"> <!-- rightwards double arrow, + U+21D2 ISOtech --> +<!-- Unicode does not say this is the 'implies' character but does not have + another character with this function so ? + rArr can be used for 'implies' as ISOtech suggests --> +<!ENTITY dArr "⇓"> <!-- downwards double arrow, U+21D3 ISOamsa --> +<!ENTITY hArr "⇔"> <!-- left right double arrow, + U+21D4 ISOamsa --> + +<!-- Mathematical Operators --> +<!ENTITY forall "∀"> <!-- for all, U+2200 ISOtech --> +<!ENTITY part "∂"> <!-- partial differential, U+2202 ISOtech --> +<!ENTITY exist "∃"> <!-- there exists, U+2203 ISOtech --> +<!ENTITY empty "∅"> <!-- empty set = null set = diameter, + U+2205 ISOamso --> +<!ENTITY nabla "∇"> <!-- nabla = backward difference, + U+2207 ISOtech --> +<!ENTITY isin "∈"> <!-- element of, U+2208 ISOtech --> +<!ENTITY notin "∉"> <!-- not an element of, U+2209 ISOtech --> +<!ENTITY ni "∋"> <!-- contains as member, U+220B ISOtech --> +<!-- should there be a more memorable name than 'ni'? --> +<!ENTITY prod "∏"> <!-- n-ary product = product sign, + U+220F ISOamsb --> +<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though + the same glyph might be used for both --> +<!ENTITY sum "∑"> <!-- n-ary sumation, U+2211 ISOamsb --> +<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma' + though the same glyph might be used for both --> +<!ENTITY minus "−"> <!-- minus sign, U+2212 ISOtech --> +<!ENTITY lowast "∗"> <!-- asterisk operator, U+2217 ISOtech --> +<!ENTITY radic "√"> <!-- square root = radical sign, + U+221A ISOtech --> +<!ENTITY prop "∝"> <!-- proportional to, U+221D ISOtech --> +<!ENTITY infin "∞"> <!-- infinity, U+221E ISOtech --> +<!ENTITY ang "∠"> <!-- angle, U+2220 ISOamso --> +<!ENTITY and "∧"> <!-- logical and = wedge, U+2227 ISOtech --> +<!ENTITY or "∨"> <!-- logical or = vee, U+2228 ISOtech --> +<!ENTITY cap "∩"> <!-- intersection = cap, U+2229 ISOtech --> +<!ENTITY cup "∪"> <!-- union = cup, U+222A ISOtech --> +<!ENTITY int "∫"> <!-- integral, U+222B ISOtech --> +<!ENTITY there4 "∴"> <!-- therefore, U+2234 ISOtech --> +<!ENTITY sim "∼"> <!-- tilde operator = varies with = similar to, + U+223C ISOtech --> +<!-- tilde operator is NOT the same character as the tilde, U+007E, + although the same glyph might be used to represent both --> +<!ENTITY cong "≅"> <!-- approximately equal to, U+2245 ISOtech --> +<!ENTITY asymp "≈"> <!-- almost equal to = asymptotic to, + U+2248 ISOamsr --> +<!ENTITY ne "≠"> <!-- not equal to, U+2260 ISOtech --> +<!ENTITY equiv "≡"> <!-- identical to, U+2261 ISOtech --> +<!ENTITY le "≤"> <!-- less-than or equal to, U+2264 ISOtech --> +<!ENTITY ge "≥"> <!-- greater-than or equal to, + U+2265 ISOtech --> +<!ENTITY sub "⊂"> <!-- subset of, U+2282 ISOtech --> +<!ENTITY sup "⊃"> <!-- superset of, U+2283 ISOtech --> +<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol + font encoding and is not included. Should it be, for symmetry? + It is in ISOamsn --> +<!ENTITY nsub "⊄"> <!-- not a subset of, U+2284 ISOamsn --> +<!ENTITY sube "⊆"> <!-- subset of or equal to, U+2286 ISOtech --> +<!ENTITY supe "⊇"> <!-- superset of or equal to, + U+2287 ISOtech --> +<!ENTITY oplus "⊕"> <!-- circled plus = direct sum, + U+2295 ISOamsb --> +<!ENTITY otimes "⊗"> <!-- circled times = vector product, + U+2297 ISOamsb --> +<!ENTITY perp "⊥"> <!-- up tack = orthogonal to = perpendicular, + U+22A5 ISOtech --> +<!ENTITY sdot "⋅"> <!-- dot operator, U+22C5 ISOamsb --> +<!-- dot operator is NOT the same character as U+00B7 middle dot --> + +<!-- Miscellaneous Technical --> +<!ENTITY lceil "⌈"> <!-- left ceiling = apl upstile, + U+2308 ISOamsc --> +<!ENTITY rceil "⌉"> <!-- right ceiling, U+2309 ISOamsc --> +<!ENTITY lfloor "⌊"> <!-- left floor = apl downstile, + U+230A ISOamsc --> +<!ENTITY rfloor "⌋"> <!-- right floor, U+230B ISOamsc --> +<!ENTITY lang "〈"> <!-- left-pointing angle bracket = bra, + U+2329 ISOtech --> +<!-- lang is NOT the same character as U+003C 'less than' + or U+2039 'single left-pointing angle quotation mark' --> +<!ENTITY rang "〉"> <!-- right-pointing angle bracket = ket, + U+232A ISOtech --> +<!-- rang is NOT the same character as U+003E 'greater than' + or U+203A 'single right-pointing angle quotation mark' --> + +<!-- Geometric Shapes --> +<!ENTITY loz "◊"> <!-- lozenge, U+25CA ISOpub --> + +<!-- Miscellaneous Symbols --> +<!ENTITY spades "♠"> <!-- black spade suit, U+2660 ISOpub --> +<!-- black here seems to mean filled as opposed to hollow --> +<!ENTITY clubs "♣"> <!-- black club suit = shamrock, + U+2663 ISOpub --> +<!ENTITY hearts "♥"> <!-- black heart suit = valentine, + U+2665 ISOpub --> +<!ENTITY diams "♦"> <!-- black diamond suit, U+2666 ISOpub --> + + +<!ENTITY % xhtml-special + PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" + "xhtml-special.ent" > +<!-- Special characters for HTML --> + +<!-- Character entity set. Typical invocation: + <!ENTITY % HTMLspecial PUBLIC + "-//W3C//ENTITIES Special for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"> + %HTMLspecial; +--> + +<!-- Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. +--> + +<!-- Relevant ISO entity set is given unless names are newly introduced. + New names (i.e., not in ISO 8879 list) do not clash with any + existing ISO 8879 entity names. ISO 10646 character numbers + are given for each character, in hex. values are decimal + conversions of the ISO 10646 values and refer to the document + character set. Names are Unicode names. +--> + +<!-- C0 Controls and Basic Latin --> +<!ENTITY quot """> <!-- quotation mark = APL quote, + U+0022 ISOnum --> +<!ENTITY amp "&#38;"> <!-- ampersand, U+0026 ISOnum --> +<!ENTITY lt "&#60;"> <!-- less-than sign, U+003C ISOnum --> +<!ENTITY gt ">"> <!-- greater-than sign, U+003E ISOnum --> +<!ENTITY apos "'"> <!-- apostrophe mark, U+0027 ISOnum --> + +<!-- Latin Extended-A --> +<!ENTITY OElig "Œ"> <!-- latin capital ligature OE, + U+0152 ISOlat2 --> +<!ENTITY oelig "œ"> <!-- latin small ligature oe, U+0153 ISOlat2 --> +<!-- ligature is a misnomer, this is a separate character in some languages --> +<!ENTITY Scaron "Š"> <!-- latin capital letter S with caron, + U+0160 ISOlat2 --> +<!ENTITY scaron "š"> <!-- latin small letter s with caron, + U+0161 ISOlat2 --> +<!ENTITY Yuml "Ÿ"> <!-- latin capital letter Y with diaeresis, + U+0178 ISOlat2 --> + +<!-- Spacing Modifier Letters --> +<!ENTITY circ "ˆ"> <!-- modifier letter circumflex accent, + U+02C6 ISOpub --> +<!ENTITY tilde "˜"> <!-- small tilde, U+02DC ISOdia --> + +<!-- General Punctuation --> +<!ENTITY ensp " "> <!-- en space, U+2002 ISOpub --> +<!ENTITY emsp " "> <!-- em space, U+2003 ISOpub --> +<!ENTITY thinsp " "> <!-- thin space, U+2009 ISOpub --> +<!ENTITY zwnj "‌"> <!-- zero width non-joiner, + U+200C NEW RFC 2070 --> +<!ENTITY zwj "‍"> <!-- zero width joiner, U+200D NEW RFC 2070 --> +<!ENTITY lrm "‎"> <!-- left-to-right mark, U+200E NEW RFC 2070 --> +<!ENTITY rlm "‏"> <!-- right-to-left mark, U+200F NEW RFC 2070 --> +<!ENTITY ndash "–"> <!-- en dash, U+2013 ISOpub --> +<!ENTITY mdash "—"> <!-- em dash, U+2014 ISOpub --> +<!ENTITY lsquo "‘"> <!-- left single quotation mark, + U+2018 ISOnum --> +<!ENTITY rsquo "’"> <!-- right single quotation mark, + U+2019 ISOnum --> +<!ENTITY sbquo "‚"> <!-- single low-9 quotation mark, U+201A NEW --> +<!ENTITY ldquo "“"> <!-- left double quotation mark, + U+201C ISOnum --> +<!ENTITY rdquo "”"> <!-- right double quotation mark, + U+201D ISOnum --> +<!ENTITY bdquo "„"> <!-- double low-9 quotation mark, U+201E NEW --> +<!ENTITY dagger "†"> <!-- dagger, U+2020 ISOpub --> +<!ENTITY Dagger "‡"> <!-- double dagger, U+2021 ISOpub --> +<!ENTITY permil "‰"> <!-- per mille sign, U+2030 ISOtech --> +<!ENTITY lsaquo "‹"> <!-- single left-pointing angle quotation mark, + U+2039 ISO proposed --> +<!-- lsaquo is proposed but not yet ISO standardized --> +<!ENTITY rsaquo "›"> <!-- single right-pointing angle quotation mark, + U+203A ISO proposed --> +<!-- rsaquo is proposed but not yet ISO standardized --> +<!ENTITY euro "€"> <!-- euro sign, U+20AC NEW --> + + +<!-- end of xhtml-charent-1.mod --> +]]> + +<!-- end of xhtml-framework-1.mod --> +]]> + +<!-- Post-Framework Redeclaration placeholder ................... --> +<!-- this serves as a location to insert markup declarations + into the DTD following the framework declarations. +--> +<!ENTITY % xhtml-postfw-redecl.module "IGNORE" > +<![%xhtml-postfw-redecl.module;[ +%xhtml-postfw-redecl.mod; +<!-- end of xhtml-postfw-redecl.module -->]]> + +<!-- Text Module (Required) ..................................... --> +<!ENTITY % xhtml-text.module "INCLUDE" > +<![%xhtml-text.module;[ +<!ENTITY % xhtml-text.mod + PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-text-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Text Module ................................................... --> +<!-- file: xhtml-text-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-text-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Textual Content + + The Text module includes declarations for all core + text container elements and their attributes. +--> + +<!ENTITY % xhtml-inlstruct.module "INCLUDE" > +<![%xhtml-inlstruct.module;[ +<!ENTITY % xhtml-inlstruct.mod + PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN" + "xhtml-inlstruct-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Inline Structural Module ...................................... --> +<!-- file: xhtml-inlstruct-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstruct-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Inline Structural + + br, span + + This module declares the elements and their attributes + used to support inline-level structural markup. +--> + +<!-- br: forced line break ............................. --> + +<!ENTITY % br.element "INCLUDE" > +<![%br.element;[ + +<!ENTITY % br.content "EMPTY" > +<!ENTITY % br.qname "br" > +<!ELEMENT %br.qname; %br.content; > + +<!-- end of br.element -->]]> + +<!ENTITY % br.attlist "INCLUDE" > +<![%br.attlist;[ +<!ATTLIST %br.qname; + %Core.attrib; +> +<!-- end of br.attlist -->]]> + +<!-- span: generic inline container .................... --> + +<!ENTITY % span.element "INCLUDE" > +<![%span.element;[ +<!ENTITY % span.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % span.qname "span" > +<!ELEMENT %span.qname; %span.content; > +<!-- end of span.element -->]]> + +<!ENTITY % span.attlist "INCLUDE" > +<![%span.attlist;[ +<!ATTLIST %span.qname; + %Common.attrib; +> +<!-- end of span.attlist -->]]> + +<!-- end of xhtml-inlstruct-1.mod --> +]]> + +<!ENTITY % xhtml-inlphras.module "INCLUDE" > +<![%xhtml-inlphras.module;[ +<!ENTITY % xhtml-inlphras.mod + PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN" + "xhtml-inlphras-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Inline Phrasal Module ......................................... --> +<!-- file: xhtml-inlphras-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlphras-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Inline Phrasal + + abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var + + This module declares the elements and their attributes used to + support inline-level phrasal markup. +--> + +<!ENTITY % abbr.element "INCLUDE" > +<![%abbr.element;[ +<!ENTITY % abbr.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % abbr.qname "abbr" > +<!ELEMENT %abbr.qname; %abbr.content; > +<!-- end of abbr.element -->]]> + +<!ENTITY % abbr.attlist "INCLUDE" > +<![%abbr.attlist;[ +<!ATTLIST %abbr.qname; + %Common.attrib; +> +<!-- end of abbr.attlist -->]]> + +<!ENTITY % acronym.element "INCLUDE" > +<![%acronym.element;[ +<!ENTITY % acronym.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % acronym.qname "acronym" > +<!ELEMENT %acronym.qname; %acronym.content; > +<!-- end of acronym.element -->]]> + +<!ENTITY % acronym.attlist "INCLUDE" > +<![%acronym.attlist;[ +<!ATTLIST %acronym.qname; + %Common.attrib; +> +<!-- end of acronym.attlist -->]]> + +<!ENTITY % cite.element "INCLUDE" > +<![%cite.element;[ +<!ENTITY % cite.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % cite.qname "cite" > +<!ELEMENT %cite.qname; %cite.content; > +<!-- end of cite.element -->]]> + +<!ENTITY % cite.attlist "INCLUDE" > +<![%cite.attlist;[ +<!ATTLIST %cite.qname; + %Common.attrib; +> +<!-- end of cite.attlist -->]]> + +<!ENTITY % code.element "INCLUDE" > +<![%code.element;[ +<!ENTITY % code.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % code.qname "code" > +<!ELEMENT %code.qname; %code.content; > +<!-- end of code.element -->]]> + +<!ENTITY % code.attlist "INCLUDE" > +<![%code.attlist;[ +<!ATTLIST %code.qname; + %Common.attrib; +> +<!-- end of code.attlist -->]]> + +<!ENTITY % dfn.element "INCLUDE" > +<![%dfn.element;[ +<!ENTITY % dfn.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % dfn.qname "dfn" > +<!ELEMENT %dfn.qname; %dfn.content; > +<!-- end of dfn.element -->]]> + +<!ENTITY % dfn.attlist "INCLUDE" > +<![%dfn.attlist;[ +<!ATTLIST %dfn.qname; + %Common.attrib; +> +<!-- end of dfn.attlist -->]]> + +<!ENTITY % em.element "INCLUDE" > +<![%em.element;[ +<!ENTITY % em.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % em.qname "em" > +<!ELEMENT %em.qname; %em.content; > +<!-- end of em.element -->]]> + +<!ENTITY % em.attlist "INCLUDE" > +<![%em.attlist;[ +<!ATTLIST %em.qname; + %Common.attrib; +> +<!-- end of em.attlist -->]]> + +<!ENTITY % kbd.element "INCLUDE" > +<![%kbd.element;[ +<!ENTITY % kbd.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % kbd.qname "kbd" > +<!ELEMENT %kbd.qname; %kbd.content; > +<!-- end of kbd.element -->]]> + +<!ENTITY % kbd.attlist "INCLUDE" > +<![%kbd.attlist;[ +<!ATTLIST %kbd.qname; + %Common.attrib; +> +<!-- end of kbd.attlist -->]]> + +<!ENTITY % q.element "INCLUDE" > +<![%q.element;[ +<!ENTITY % q.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % q.qname "q" > +<!ELEMENT %q.qname; %q.content; > +<!-- end of q.element -->]]> + +<!ENTITY % q.attlist "INCLUDE" > +<![%q.attlist;[ +<!ATTLIST %q.qname; + %Common.attrib; + cite %URI.datatype; #IMPLIED +> +<!-- end of q.attlist -->]]> + +<!ENTITY % samp.element "INCLUDE" > +<![%samp.element;[ +<!ENTITY % samp.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % samp.qname "samp" > +<!ELEMENT %samp.qname; %samp.content; > +<!-- end of samp.element -->]]> + +<!ENTITY % samp.attlist "INCLUDE" > +<![%samp.attlist;[ +<!ATTLIST %samp.qname; + %Common.attrib; +> +<!-- end of samp.attlist -->]]> + +<!ENTITY % strong.element "INCLUDE" > +<![%strong.element;[ +<!ENTITY % strong.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % strong.qname "strong" > +<!ELEMENT %strong.qname; %strong.content; > +<!-- end of strong.element -->]]> + +<!ENTITY % strong.attlist "INCLUDE" > +<![%strong.attlist;[ +<!ATTLIST %strong.qname; + %Common.attrib; +> +<!-- end of strong.attlist -->]]> + +<!ENTITY % var.element "INCLUDE" > +<![%var.element;[ +<!ENTITY % var.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % var.qname "var" > +<!ELEMENT %var.qname; %var.content; > +<!-- end of var.element -->]]> + +<!ENTITY % var.attlist "INCLUDE" > +<![%var.attlist;[ +<!ATTLIST %var.qname; + %Common.attrib; +> +<!-- end of var.attlist -->]]> + +<!-- end of xhtml-inlphras-1.mod --> +]]> + +<!ENTITY % xhtml-blkstruct.module "INCLUDE" > +<![%xhtml-blkstruct.module;[ +<!ENTITY % xhtml-blkstruct.mod + PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN" + "xhtml-blkstruct-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Block Structural Module ....................................... --> +<!-- file: xhtml-blkstruct-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-blkstruct-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Block Structural + + div, p + + This module declares the elements and their attributes used to + support block-level structural markup. +--> + +<!ENTITY % div.element "INCLUDE" > +<![%div.element;[ +<!ENTITY % div.content + "( #PCDATA | %Flow.mix; )*" +> +<!ENTITY % div.qname "div" > +<!ELEMENT %div.qname; %div.content; > +<!-- end of div.element -->]]> + +<!ENTITY % div.attlist "INCLUDE" > +<![%div.attlist;[ +<!ATTLIST %div.qname; + %Common.attrib; +> +<!-- end of div.attlist -->]]> + +<!ENTITY % p.element "INCLUDE" > +<![%p.element;[ +<!ENTITY % p.content + "( #PCDATA | %Inline.mix; )*" > +<!ENTITY % p.qname "p" > +<!ELEMENT %p.qname; %p.content; > +<!-- end of p.element -->]]> + +<!ENTITY % p.attlist "INCLUDE" > +<![%p.attlist;[ +<!ATTLIST %p.qname; + %Common.attrib; +> +<!-- end of p.attlist -->]]> + +<!-- end of xhtml-blkstruct-1.mod --> +]]> + +<!ENTITY % xhtml-blkphras.module "INCLUDE" > +<![%xhtml-blkphras.module;[ +<!ENTITY % xhtml-blkphras.mod + PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN" + "xhtml-blkphras-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Block Phrasal Module .......................................... --> +<!-- file: xhtml-blkphras-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-blkphras-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Block Phrasal + + address, blockquote, pre, h1, h2, h3, h4, h5, h6 + + This module declares the elements and their attributes used to + support block-level phrasal markup. +--> + +<!ENTITY % address.element "INCLUDE" > +<![%address.element;[ +<!ENTITY % address.content + "( #PCDATA | %Inline.mix; )*" > +<!ENTITY % address.qname "address" > +<!ELEMENT %address.qname; %address.content; > +<!-- end of address.element -->]]> + +<!ENTITY % address.attlist "INCLUDE" > +<![%address.attlist;[ +<!ATTLIST %address.qname; + %Common.attrib; +> +<!-- end of address.attlist -->]]> + +<!ENTITY % blockquote.element "INCLUDE" > +<![%blockquote.element;[ +<!ENTITY % blockquote.content + "( %Block.mix; )+" +> +<!ENTITY % blockquote.qname "blockquote" > +<!ELEMENT %blockquote.qname; %blockquote.content; > +<!-- end of blockquote.element -->]]> + +<!ENTITY % blockquote.attlist "INCLUDE" > +<![%blockquote.attlist;[ +<!ATTLIST %blockquote.qname; + %Common.attrib; + cite %URI.datatype; #IMPLIED +> +<!-- end of blockquote.attlist -->]]> + +<!ENTITY % pre.element "INCLUDE" > +<![%pre.element;[ +<!ENTITY % pre.content + "( #PCDATA + | %InlStruct.class; + %InlPhras.class; + | %tt.qname; | %i.qname; | %b.qname; + %I18n.class; + %Anchor.class; + | %script.qname; | %map.qname; + %Inline.extra; )*" +> +<!ENTITY % pre.qname "pre" > +<!ELEMENT %pre.qname; %pre.content; > +<!-- end of pre.element -->]]> + +<!ENTITY % pre.attlist "INCLUDE" > +<![%pre.attlist;[ +<!ATTLIST %pre.qname; + %Common.attrib; + xml:space ( preserve ) #FIXED 'preserve' +> +<!-- end of pre.attlist -->]]> + +<!-- ................... Heading Elements ................... --> + +<!ENTITY % Heading.content "( #PCDATA | %Inline.mix; )*" > + +<!ENTITY % h1.element "INCLUDE" > +<![%h1.element;[ +<!ENTITY % h1.qname "h1" > +<!ELEMENT %h1.qname; %Heading.content; > +<!-- end of h1.element -->]]> + +<!ENTITY % h1.attlist "INCLUDE" > +<![%h1.attlist;[ +<!ATTLIST %h1.qname; + %Common.attrib; +> +<!-- end of h1.attlist -->]]> + +<!ENTITY % h2.element "INCLUDE" > +<![%h2.element;[ +<!ENTITY % h2.qname "h2" > +<!ELEMENT %h2.qname; %Heading.content; > +<!-- end of h2.element -->]]> + +<!ENTITY % h2.attlist "INCLUDE" > +<![%h2.attlist;[ +<!ATTLIST %h2.qname; + %Common.attrib; +> +<!-- end of h2.attlist -->]]> + +<!ENTITY % h3.element "INCLUDE" > +<![%h3.element;[ +<!ENTITY % h3.qname "h3" > +<!ELEMENT %h3.qname; %Heading.content; > +<!-- end of h3.element -->]]> + +<!ENTITY % h3.attlist "INCLUDE" > +<![%h3.attlist;[ +<!ATTLIST %h3.qname; + %Common.attrib; +> +<!-- end of h3.attlist -->]]> + +<!ENTITY % h4.element "INCLUDE" > +<![%h4.element;[ +<!ENTITY % h4.qname "h4" > +<!ELEMENT %h4.qname; %Heading.content; > +<!-- end of h4.element -->]]> + +<!ENTITY % h4.attlist "INCLUDE" > +<![%h4.attlist;[ +<!ATTLIST %h4.qname; + %Common.attrib; +> +<!-- end of h4.attlist -->]]> + +<!ENTITY % h5.element "INCLUDE" > +<![%h5.element;[ +<!ENTITY % h5.qname "h5" > +<!ELEMENT %h5.qname; %Heading.content; > +<!-- end of h5.element -->]]> + +<!ENTITY % h5.attlist "INCLUDE" > +<![%h5.attlist;[ +<!ATTLIST %h5.qname; + %Common.attrib; +> +<!-- end of h5.attlist -->]]> + +<!ENTITY % h6.element "INCLUDE" > +<![%h6.element;[ +<!ENTITY % h6.qname "h6" > +<!ELEMENT %h6.qname; %Heading.content; > +<!-- end of h6.element -->]]> + +<!ENTITY % h6.attlist "INCLUDE" > +<![%h6.attlist;[ +<!ATTLIST %h6.qname; + %Common.attrib; +> +<!-- end of h6.attlist -->]]> + +<!-- end of xhtml-blkphras-1.mod --> +]]> + +<!-- end of xhtml-text-1.mod --> +]]> + +<!-- Hypertext Module (required) ................................. --> +<!ENTITY % xhtml-hypertext.module "INCLUDE" > +<![%xhtml-hypertext.module;[ +<!ENTITY % xhtml-hypertext.mod + PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Hypertext Module .............................................. --> +<!-- file: xhtml-hypertext-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Hypertext + + a + + This module declares the anchor ('a') element type, which + defines the source of a hypertext link. The destination + (or link 'target') is identified via its 'id' attribute + rather than the 'name' attribute as was used in HTML. +--> + +<!-- ............ Anchor Element ............ --> + +<!ENTITY % a.element "INCLUDE" > +<![%a.element;[ +<!ENTITY % a.content + "( #PCDATA | %InlNoAnchor.mix; )*" +> +<!ENTITY % a.qname "a" > +<!ELEMENT %a.qname; %a.content; > +<!-- end of a.element -->]]> + +<!ENTITY % a.attlist "INCLUDE" > +<![%a.attlist;[ +<!ATTLIST %a.qname; + %Common.attrib; + href %URI.datatype; #IMPLIED + charset %Charset.datatype; #IMPLIED + type %ContentType.datatype; #IMPLIED + hreflang %LanguageCode.datatype; #IMPLIED + rel %LinkTypes.datatype; #IMPLIED + rev %LinkTypes.datatype; #IMPLIED + accesskey %Character.datatype; #IMPLIED + tabindex %Number.datatype; #IMPLIED +> +<!-- end of a.attlist -->]]> + +<!-- end of xhtml-hypertext-1.mod --> +]]> + +<!-- Lists Module (required) .................................... --> +<!ENTITY % xhtml-list.module "INCLUDE" > +<![%xhtml-list.module;[ +<!ENTITY % xhtml-list.mod + PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-list-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Lists Module .................................................. --> +<!-- file: xhtml-list-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-list-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Lists + + dl, dt, dd, ol, ul, li + + This module declares the list-oriented element types + and their attributes. +--> + +<!ENTITY % dl.qname "dl" > +<!ENTITY % dt.qname "dt" > +<!ENTITY % dd.qname "dd" > +<!ENTITY % ol.qname "ol" > +<!ENTITY % ul.qname "ul" > +<!ENTITY % li.qname "li" > + +<!-- dl: Definition List ............................... --> + +<!ENTITY % dl.element "INCLUDE" > +<![%dl.element;[ +<!ENTITY % dl.content "( %dt.qname; | %dd.qname; )+" > +<!ELEMENT %dl.qname; %dl.content; > +<!-- end of dl.element -->]]> + +<!ENTITY % dl.attlist "INCLUDE" > +<![%dl.attlist;[ +<!ATTLIST %dl.qname; + %Common.attrib; +> +<!-- end of dl.attlist -->]]> + +<!-- dt: Definition Term ............................... --> + +<!ENTITY % dt.element "INCLUDE" > +<![%dt.element;[ +<!ENTITY % dt.content + "( #PCDATA | %Inline.mix; )*" +> +<!ELEMENT %dt.qname; %dt.content; > +<!-- end of dt.element -->]]> + +<!ENTITY % dt.attlist "INCLUDE" > +<![%dt.attlist;[ +<!ATTLIST %dt.qname; + %Common.attrib; +> +<!-- end of dt.attlist -->]]> + +<!-- dd: Definition Description ........................ --> + +<!ENTITY % dd.element "INCLUDE" > +<![%dd.element;[ +<!ENTITY % dd.content + "( #PCDATA | %Flow.mix; )*" +> +<!ELEMENT %dd.qname; %dd.content; > +<!-- end of dd.element -->]]> + +<!ENTITY % dd.attlist "INCLUDE" > +<![%dd.attlist;[ +<!ATTLIST %dd.qname; + %Common.attrib; +> +<!-- end of dd.attlist -->]]> + +<!-- ol: Ordered List (numbered styles) ................ --> + +<!ENTITY % ol.element "INCLUDE" > +<![%ol.element;[ +<!ENTITY % ol.content "( %li.qname; )+" > +<!ELEMENT %ol.qname; %ol.content; > +<!-- end of ol.element -->]]> + +<!ENTITY % ol.attlist "INCLUDE" > +<![%ol.attlist;[ +<!ATTLIST %ol.qname; + %Common.attrib; +> +<!-- end of ol.attlist -->]]> + +<!-- ul: Unordered List (bullet styles) ................ --> + +<!ENTITY % ul.element "INCLUDE" > +<![%ul.element;[ +<!ENTITY % ul.content "( %li.qname; )+" > +<!ELEMENT %ul.qname; %ul.content; > +<!-- end of ul.element -->]]> + +<!ENTITY % ul.attlist "INCLUDE" > +<![%ul.attlist;[ +<!ATTLIST %ul.qname; + %Common.attrib; +> +<!-- end of ul.attlist -->]]> + +<!-- li: List Item ..................................... --> + +<!ENTITY % li.element "INCLUDE" > +<![%li.element;[ +<!ENTITY % li.content + "( #PCDATA | %Flow.mix; )*" +> +<!ELEMENT %li.qname; %li.content; > +<!-- end of li.element -->]]> + +<!ENTITY % li.attlist "INCLUDE" > +<![%li.attlist;[ +<!ATTLIST %li.qname; + %Common.attrib; +> +<!-- end of li.attlist -->]]> + +<!-- end of xhtml-list-1.mod --> +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Edit Module ................................................ --> +<!ENTITY % xhtml-edit.module "INCLUDE" > +<![%xhtml-edit.module;[ +<!ENTITY % xhtml-edit.mod + PUBLIC "-//W3C//ELEMENTS XHTML Editing Elements 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-edit-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Editing Elements Module ....................................... --> +<!-- file: xhtml-edit-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Editing Markup 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-edit-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Editing Elements + + ins, del + + This module declares element types and attributes used to indicate + inserted and deleted content while editing a document. +--> + +<!-- ins: Inserted Text ............................... --> + +<!ENTITY % ins.element "INCLUDE" > +<![%ins.element;[ +<!ENTITY % ins.content + "( #PCDATA | %Flow.mix; )*" +> +<!ENTITY % ins.qname "ins" > +<!ELEMENT %ins.qname; %ins.content; > +<!-- end of ins.element -->]]> + +<!ENTITY % ins.attlist "INCLUDE" > +<![%ins.attlist;[ +<!ATTLIST %ins.qname; + %Common.attrib; + cite %URI.datatype; #IMPLIED + datetime %Datetime.datatype; #IMPLIED +> +<!-- end of ins.attlist -->]]> + +<!-- del: Deleted Text ................................ --> + +<!ENTITY % del.element "INCLUDE" > +<![%del.element;[ +<!ENTITY % del.content + "( #PCDATA | %Flow.mix; )*" +> +<!ENTITY % del.qname "del" > +<!ELEMENT %del.qname; %del.content; > +<!-- end of del.element -->]]> + +<!ENTITY % del.attlist "INCLUDE" > +<![%del.attlist;[ +<!ATTLIST %del.qname; + %Common.attrib; + cite %URI.datatype; #IMPLIED + datetime %Datetime.datatype; #IMPLIED +> +<!-- end of del.attlist -->]]> + +<!-- end of xhtml-edit-1.mod --> +]]> + +<!-- BIDI Override Module ....................................... --> +<!ENTITY % xhtml-bdo.module "%XHTML.bidi;" > +<![%xhtml-bdo.module;[ +<!ENTITY % xhtml-bdo.mod + PUBLIC "-//W3C//ELEMENTS XHTML BIDI Override Element 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-bdo-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML BDO Element Module ............................................. --> +<!-- file: xhtml-bdo-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML BDO Element 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-bdo-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Bidirectional Override (bdo) Element + + This modules declares the element 'bdo', used to override the + Unicode bidirectional algorithm for selected fragments of text. + + DEPENDENCIES: + Relies on the conditional section keyword %XHTML.bidi; declared + as "INCLUDE". Bidirectional text support includes both the bdo + element and the 'dir' attribute. +--> + +<!ENTITY % bdo.element "INCLUDE" > +<![%bdo.element;[ +<!ENTITY % bdo.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % bdo.qname "bdo" > +<!ELEMENT %bdo.qname; %bdo.content; > +<!-- end of bdo.element -->]]> + +<!ENTITY % bdo.attlist "INCLUDE" > +<![%bdo.attlist;[ +<!ATTLIST %bdo.qname; + %Core.attrib; + xml:lang %LanguageCode.datatype; #IMPLIED + dir ( ltr | rtl ) #REQUIRED +> +]]> + +<!-- end of xhtml-bdo-1.mod --> +]]> + +<!-- Ruby Module ................................................ --> +<!ENTITY % Ruby.common.attlists "INCLUDE" > +<!ENTITY % Ruby.common.attrib "%Common.attrib;" > +<!ENTITY % xhtml-ruby.module "INCLUDE" > +<![%xhtml-ruby.module;[ +<!ENTITY % xhtml-ruby.mod + PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN" + "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Ruby Module .................................................... --> +<!-- file: xhtml-ruby-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1999-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This module is based on the W3C Ruby Annotation Specification: + + http://www.w3.org/TR/ruby + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN" + SYSTEM "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod" + + ...................................................................... --> + +<!-- Ruby Elements + + ruby, rbc, rtc, rb, rt, rp + + This module declares the elements and their attributes used to + support ruby annotation markup. +--> + +<!-- declare qualified element type names: +--> +<!ENTITY % ruby.qname "ruby" > +<!ENTITY % rbc.qname "rbc" > +<!ENTITY % rtc.qname "rtc" > +<!ENTITY % rb.qname "rb" > +<!ENTITY % rt.qname "rt" > +<!ENTITY % rp.qname "rp" > + +<!-- rp fallback is included by default. +--> +<!ENTITY % Ruby.fallback "INCLUDE" > +<!ENTITY % Ruby.fallback.mandatory "IGNORE" > + +<!-- Complex ruby is included by default; it may be + overridden by other modules to ignore it. +--> +<!ENTITY % Ruby.complex "INCLUDE" > + +<!-- Fragments for the content model of the ruby element --> +<![%Ruby.fallback;[ +<![%Ruby.fallback.mandatory;[ +<!ENTITY % Ruby.content.simple + "( %rb.qname;, %rp.qname;, %rt.qname;, %rp.qname; )" +> +]]> +<!ENTITY % Ruby.content.simple + "( %rb.qname;, ( %rt.qname; | ( %rp.qname;, %rt.qname;, %rp.qname; ) ) )" +> +]]> +<!ENTITY % Ruby.content.simple "( %rb.qname;, %rt.qname; )" > + +<![%Ruby.complex;[ +<!ENTITY % Ruby.content.complex + "| ( %rbc.qname;, %rtc.qname;, %rtc.qname;? )" +> +]]> +<!ENTITY % Ruby.content.complex "" > + +<!-- Content models of the rb and the rt elements are intended to + allow other inline-level elements of its parent markup language, + but it should not include ruby descendent elements. The following + parameter entity %NoRuby.content; can be used to redefine + those content models with minimum effort. It's defined as + '( #PCDATA )' by default. +--> +<!ENTITY % NoRuby.content "( #PCDATA )" > + +<!-- one or more digits (NUMBER) --> +<!ENTITY % Number.datatype "CDATA" > + +<!-- ruby element ...................................... --> + +<!ENTITY % ruby.element "INCLUDE" > +<![%ruby.element;[ +<!ENTITY % ruby.content + "( %Ruby.content.simple; %Ruby.content.complex; )" +> +<!ELEMENT %ruby.qname; %ruby.content; > +<!-- end of ruby.element -->]]> + +<![%Ruby.complex;[ +<!-- rbc (ruby base component) element ................. --> + +<!ENTITY % rbc.element "INCLUDE" > +<![%rbc.element;[ +<!ENTITY % rbc.content + "(%rb.qname;)+" +> +<!ELEMENT %rbc.qname; %rbc.content; > +<!-- end of rbc.element -->]]> + +<!-- rtc (ruby text component) element ................. --> + +<!ENTITY % rtc.element "INCLUDE" > +<![%rtc.element;[ +<!ENTITY % rtc.content + "(%rt.qname;)+" +> +<!ELEMENT %rtc.qname; %rtc.content; > +<!-- end of rtc.element -->]]> +]]> + +<!-- rb (ruby base) element ............................ --> + +<!ENTITY % rb.element "INCLUDE" > +<![%rb.element;[ +<!-- %rb.content; uses %NoRuby.content; as its content model, + which is '( #PCDATA )' by default. It may be overridden + by other modules to allow other inline-level elements + of its parent markup language, but it should not include + ruby descendent elements. +--> +<!ENTITY % rb.content "%NoRuby.content;" > +<!ELEMENT %rb.qname; %rb.content; > +<!-- end of rb.element -->]]> + +<!-- rt (ruby text) element ............................ --> + +<!ENTITY % rt.element "INCLUDE" > +<![%rt.element;[ +<!-- %rt.content; uses %NoRuby.content; as its content model, + which is '( #PCDATA )' by default. It may be overridden + by other modules to allow other inline-level elements + of its parent markup language, but it should not include + ruby descendent elements. +--> +<!ENTITY % rt.content "%NoRuby.content;" > + +<!ELEMENT %rt.qname; %rt.content; > +<!-- end of rt.element -->]]> + +<!-- rbspan attribute is used for complex ruby only ...... --> +<![%Ruby.complex;[ +<!ENTITY % rt.attlist "INCLUDE" > +<![%rt.attlist;[ +<!ATTLIST %rt.qname; + rbspan %Number.datatype; "1" +> +<!-- end of rt.attlist -->]]> +]]> + +<!-- rp (ruby parenthesis) element ..................... --> + +<![%Ruby.fallback;[ +<!ENTITY % rp.element "INCLUDE" > +<![%rp.element;[ +<!ENTITY % rp.content + "( #PCDATA )" +> +<!ELEMENT %rp.qname; %rp.content; > +<!-- end of rp.element -->]]> +]]> + +<!-- Ruby Common Attributes + + The following optional ATTLIST declarations provide an easy way + to define common attributes for ruby elements. These declarations + are ignored by default. + + Ruby elements are intended to have common attributes of its + parent markup language. For example, if a markup language defines + common attributes as a parameter entity %attrs;, you may add + those attributes by just declaring the following parameter entities + + <!ENTITY % Ruby.common.attlists "INCLUDE" > + <!ENTITY % Ruby.common.attrib "%attrs;" > + + before including the Ruby module. +--> + +<!ENTITY % Ruby.common.attlists "IGNORE" > +<![%Ruby.common.attlists;[ +<!ENTITY % Ruby.common.attrib "" > + +<!-- common attributes for ruby ........................ --> + +<!ENTITY % Ruby.common.attlist "INCLUDE" > +<![%Ruby.common.attlist;[ +<!ATTLIST %ruby.qname; + %Ruby.common.attrib; +> +<!-- end of Ruby.common.attlist -->]]> + +<![%Ruby.complex;[ +<!-- common attributes for rbc ......................... --> + +<!ENTITY % Rbc.common.attlist "INCLUDE" > +<![%Rbc.common.attlist;[ +<!ATTLIST %rbc.qname; + %Ruby.common.attrib; +> +<!-- end of Rbc.common.attlist -->]]> + +<!-- common attributes for rtc ......................... --> + +<!ENTITY % Rtc.common.attlist "INCLUDE" > +<![%Rtc.common.attlist;[ +<!ATTLIST %rtc.qname; + %Ruby.common.attrib; +> +<!-- end of Rtc.common.attlist -->]]> +]]> + +<!-- common attributes for rb .......................... --> + +<!ENTITY % Rb.common.attlist "INCLUDE" > +<![%Rb.common.attlist;[ +<!ATTLIST %rb.qname; + %Ruby.common.attrib; +> +<!-- end of Rb.common.attlist -->]]> + +<!-- common attributes for rt .......................... --> + +<!ENTITY % Rt.common.attlist "INCLUDE" > +<![%Rt.common.attlist;[ +<!ATTLIST %rt.qname; + %Ruby.common.attrib; +> +<!-- end of Rt.common.attlist -->]]> + +<![%Ruby.fallback;[ +<!-- common attributes for rp .......................... --> + +<!ENTITY % Rp.common.attlist "INCLUDE" > +<![%Rp.common.attlist;[ +<!ATTLIST %rp.qname; + %Ruby.common.attrib; +> +<!-- end of Rp.common.attlist -->]]> +]]> +]]> + +<!-- end of xhtml-ruby-1.mod --> +]]> + +<!-- Presentation Module ........................................ --> +<!ENTITY % xhtml-pres.module "INCLUDE" > +<![%xhtml-pres.module;[ +<!ENTITY % xhtml-pres.mod + PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-pres-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Presentation Module ............................................ --> +<!-- file: xhtml-pres-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-pres-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Presentational Elements + + This module defines elements and their attributes for + simple presentation-related markup. +--> + +<!ENTITY % xhtml-inlpres.module "INCLUDE" > +<![%xhtml-inlpres.module;[ +<!ENTITY % xhtml-inlpres.mod + PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN" + "xhtml-inlpres-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Inline Presentation Module .................................... --> +<!-- file: xhtml-inlpres-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlpres-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Inline Presentational Elements + + b, big, i, small, sub, sup, tt + + This module declares the elements and their attributes used to + support inline-level presentational markup. +--> + +<!ENTITY % b.element "INCLUDE" > +<![%b.element;[ +<!ENTITY % b.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % b.qname "b" > +<!ELEMENT %b.qname; %b.content; > +<!-- end of b.element -->]]> + +<!ENTITY % b.attlist "INCLUDE" > +<![%b.attlist;[ +<!ATTLIST %b.qname; + %Common.attrib; +> +<!-- end of b.attlist -->]]> + +<!ENTITY % big.element "INCLUDE" > +<![%big.element;[ +<!ENTITY % big.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % big.qname "big" > +<!ELEMENT %big.qname; %big.content; > +<!-- end of big.element -->]]> + +<!ENTITY % big.attlist "INCLUDE" > +<![%big.attlist;[ +<!ATTLIST %big.qname; + %Common.attrib; +> +<!-- end of big.attlist -->]]> + +<!ENTITY % i.element "INCLUDE" > +<![%i.element;[ +<!ENTITY % i.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % i.qname "i" > +<!ELEMENT %i.qname; %i.content; > +<!-- end of i.element -->]]> + +<!ENTITY % i.attlist "INCLUDE" > +<![%i.attlist;[ +<!ATTLIST %i.qname; + %Common.attrib; +> +<!-- end of i.attlist -->]]> + +<!ENTITY % small.element "INCLUDE" > +<![%small.element;[ +<!ENTITY % small.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % small.qname "small" > +<!ELEMENT %small.qname; %small.content; > +<!-- end of small.element -->]]> + +<!ENTITY % small.attlist "INCLUDE" > +<![%small.attlist;[ +<!ATTLIST %small.qname; + %Common.attrib; +> +<!-- end of small.attlist -->]]> + +<!ENTITY % sub.element "INCLUDE" > +<![%sub.element;[ +<!ENTITY % sub.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % sub.qname "sub" > +<!ELEMENT %sub.qname; %sub.content; > +<!-- end of sub.element -->]]> + +<!ENTITY % sub.attlist "INCLUDE" > +<![%sub.attlist;[ +<!ATTLIST %sub.qname; + %Common.attrib; +> +<!-- end of sub.attlist -->]]> + +<!ENTITY % sup.element "INCLUDE" > +<![%sup.element;[ +<!ENTITY % sup.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % sup.qname "sup" > +<!ELEMENT %sup.qname; %sup.content; > +<!-- end of sup.element -->]]> + +<!ENTITY % sup.attlist "INCLUDE" > +<![%sup.attlist;[ +<!ATTLIST %sup.qname; + %Common.attrib; +> +<!-- end of sup.attlist -->]]> + +<!ENTITY % tt.element "INCLUDE" > +<![%tt.element;[ +<!ENTITY % tt.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % tt.qname "tt" > +<!ELEMENT %tt.qname; %tt.content; > +<!-- end of tt.element -->]]> + +<!ENTITY % tt.attlist "INCLUDE" > +<![%tt.attlist;[ +<!ATTLIST %tt.qname; + %Common.attrib; +> +<!-- end of tt.attlist -->]]> + +<!-- end of xhtml-inlpres-1.mod --> +]]> + +<!ENTITY % xhtml-blkpres.module "INCLUDE" > +<![%xhtml-blkpres.module;[ +<!ENTITY % xhtml-blkpres.mod + PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN" + "xhtml-blkpres-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Block Presentation Module ..................................... --> +<!-- file: xhtml-blkpres-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-blkpres-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Block Presentational Elements + + hr + + This module declares the elements and their attributes used to + support block-level presentational markup. +--> + +<!ENTITY % hr.element "INCLUDE" > +<![%hr.element;[ +<!ENTITY % hr.content "EMPTY" > +<!ENTITY % hr.qname "hr" > +<!ELEMENT %hr.qname; %hr.content; > +<!-- end of hr.element -->]]> + +<!ENTITY % hr.attlist "INCLUDE" > +<![%hr.attlist;[ +<!ATTLIST %hr.qname; + %Common.attrib; +> +<!-- end of hr.attlist -->]]> + +<!-- end of xhtml-blkpres-1.mod --> +]]> + +<!-- end of xhtml-pres-1.mod --> +]]> + +<!-- Link Element Module ........................................ --> +<!ENTITY % xhtml-link.module "INCLUDE" > +<![%xhtml-link.module;[ +<!ENTITY % xhtml-link.mod + PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-link-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Link Element Module ........................................... --> +<!-- file: xhtml-link-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-link-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Link element + + link + + This module declares the link element type and its attributes, + which could (in principle) be used to define document-level links + to external resources such as: + + a) for document specific toolbars/menus, e.g. start, contents, + previous, next, index, end, help + b) to link to a separate style sheet (rel="stylesheet") + c) to make a link to a script (rel="script") + d) by style sheets to control how collections of html nodes are + rendered into printed documents + e) to make a link to a printable version of this document + e.g. a postscript or pdf version (rel="alternate" media="print") +--> + +<!-- link: Media-Independent Link ...................... --> + +<!ENTITY % link.element "INCLUDE" > +<![%link.element;[ +<!ENTITY % link.content "EMPTY" > +<!ENTITY % link.qname "link" > +<!ELEMENT %link.qname; %link.content; > +<!-- end of link.element -->]]> + +<!ENTITY % link.attlist "INCLUDE" > +<![%link.attlist;[ +<!ATTLIST %link.qname; + %Common.attrib; + charset %Charset.datatype; #IMPLIED + href %URI.datatype; #IMPLIED + hreflang %LanguageCode.datatype; #IMPLIED + type %ContentType.datatype; #IMPLIED + rel %LinkTypes.datatype; #IMPLIED + rev %LinkTypes.datatype; #IMPLIED + media %MediaDesc.datatype; #IMPLIED +> +<!-- end of link.attlist -->]]> + +<!-- end of xhtml-link-1.mod --> +]]> + +<!-- Document Metainformation Module ............................ --> +<!ENTITY % xhtml-meta.module "INCLUDE" > +<![%xhtml-meta.module;[ +<!ENTITY % xhtml-meta.mod + PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-meta-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Document Metainformation Module ............................... --> +<!-- file: xhtml-meta-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-meta-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Meta Information + + meta + + This module declares the meta element type and its attributes, + used to provide declarative document metainformation. +--> + +<!-- meta: Generic Metainformation ..................... --> + +<!ENTITY % meta.element "INCLUDE" > +<![%meta.element;[ +<!ENTITY % meta.content "EMPTY" > +<!ENTITY % meta.qname "meta" > +<!ELEMENT %meta.qname; %meta.content; > +<!-- end of meta.element -->]]> + +<!ENTITY % meta.attlist "INCLUDE" > +<![%meta.attlist;[ +<!ATTLIST %meta.qname; + %XHTML.xmlns.attrib; + %I18n.attrib; + http-equiv NMTOKEN #IMPLIED + name NMTOKEN #IMPLIED + content CDATA #REQUIRED + scheme CDATA #IMPLIED +> +<!-- end of meta.attlist -->]]> + +<!-- end of xhtml-meta-1.mod --> +]]> + +<!-- Base Element Module ........................................ --> +<!ENTITY % xhtml-base.module "INCLUDE" > +<![%xhtml-base.module;[ +<!ENTITY % xhtml-base.mod + PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-base-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Base Element Module ........................................... --> +<!-- file: xhtml-base-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-base-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Base element + + base + + This module declares the base element type and its attributes, + used to define a base URI against which relative URIs in the + document will be resolved. + + Note that this module also redeclares the content model for + the head element to include the base element. +--> + +<!-- base: Document Base URI ........................... --> + +<!ENTITY % base.element "INCLUDE" > +<![%base.element;[ +<!ENTITY % base.content "EMPTY" > +<!ENTITY % base.qname "base" > +<!ELEMENT %base.qname; %base.content; > +<!-- end of base.element -->]]> + +<!ENTITY % base.attlist "INCLUDE" > +<![%base.attlist;[ +<!ATTLIST %base.qname; + %XHTML.xmlns.attrib; + href %URI.datatype; #REQUIRED +> +<!-- end of base.attlist -->]]> + +<!ENTITY % head.content + "( %HeadOpts.mix;, + ( ( %title.qname;, %HeadOpts.mix;, ( %base.qname;, %HeadOpts.mix; )? ) + | ( %base.qname;, %HeadOpts.mix;, ( %title.qname;, %HeadOpts.mix; ))))" +> + +<!-- end of xhtml-base-1.mod --> +]]> + +<!-- Scripting Module ........................................... --> +<!ENTITY % xhtml-script.module "INCLUDE" > +<![%xhtml-script.module;[ +<!ENTITY % xhtml-script.mod + PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-script-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Document Scripting Module ..................................... --> +<!-- file: xhtml-script-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-script-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Scripting + + script, noscript + + This module declares element types and attributes used to provide + support for executable scripts as well as an alternate content + container where scripts are not supported. +--> + +<!-- script: Scripting Statement ....................... --> + +<!ENTITY % script.element "INCLUDE" > +<![%script.element;[ +<!ENTITY % script.content "( #PCDATA )" > +<!ENTITY % script.qname "script" > +<!ELEMENT %script.qname; %script.content; > +<!-- end of script.element -->]]> + +<!ENTITY % script.attlist "INCLUDE" > +<![%script.attlist;[ +<!ATTLIST %script.qname; + %XHTML.xmlns.attrib; + charset %Charset.datatype; #IMPLIED + type %ContentType.datatype; #REQUIRED + src %URI.datatype; #IMPLIED + defer ( defer ) #IMPLIED + xml:space ( preserve ) #FIXED 'preserve' +> +<!-- end of script.attlist -->]]> + +<!-- noscript: No-Script Alternate Content ............. --> + +<!ENTITY % noscript.element "INCLUDE" > +<![%noscript.element;[ +<!ENTITY % noscript.content + "( %Block.mix; )+" +> +<!ENTITY % noscript.qname "noscript" > +<!ELEMENT %noscript.qname; %noscript.content; > +<!-- end of noscript.element -->]]> + +<!ENTITY % noscript.attlist "INCLUDE" > +<![%noscript.attlist;[ +<!ATTLIST %noscript.qname; + %Common.attrib; +> +<!-- end of noscript.attlist -->]]> + +<!-- end of xhtml-script-1.mod --> +]]> + +<!-- Style Sheets Module ......................................... --> +<!ENTITY % xhtml-style.module "INCLUDE" > +<![%xhtml-style.module;[ +<!ENTITY % xhtml-style.mod + PUBLIC "-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-style-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Document Style Sheet Module ................................... --> +<!-- file: xhtml-style-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD XHTML Style Sheets 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-style-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Style Sheets + + style + + This module declares the style element type and its attributes, + used to embed style sheet information in the document head element. +--> + +<!-- style: Style Sheet Information .................... --> + +<!ENTITY % style.element "INCLUDE" > +<![%style.element;[ +<!ENTITY % style.content "( #PCDATA )" > +<!ENTITY % style.qname "style" > +<!ELEMENT %style.qname; %style.content; > +<!-- end of style.element -->]]> + +<!ENTITY % style.attlist "INCLUDE" > +<![%style.attlist;[ +<!ATTLIST %style.qname; + %XHTML.xmlns.attrib; + %title.attrib; + %I18n.attrib; + type %ContentType.datatype; #REQUIRED + media %MediaDesc.datatype; #IMPLIED + xml:space ( preserve ) #FIXED 'preserve' +> +<!-- end of style.attlist -->]]> + +<!-- end of xhtml-style-1.mod --> +]]> + +<!-- Image Module ............................................... --> +<!ENTITY % xhtml-image.module "INCLUDE" > +<![%xhtml-image.module;[ +<!ENTITY % xhtml-image.mod + PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-image-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Images Module ................................................. --> +<!-- file: xhtml-image-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Rovision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-image-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Images + + img + + This module provides markup to support basic image embedding. +--> + +<!-- To avoid problems with text-only UAs as well as to make + image content understandable and navigable to users of + non-visual UAs, you need to provide a description with + the 'alt' attribute, and avoid server-side image maps. +--> + +<!ENTITY % img.element "INCLUDE" > +<![%img.element;[ +<!ENTITY % img.content "EMPTY" > +<!ENTITY % img.qname "img" > +<!ELEMENT %img.qname; %img.content; > +<!-- end of img.element -->]]> + +<!ENTITY % img.attlist "INCLUDE" > +<![%img.attlist;[ +<!ATTLIST %img.qname; + %Common.attrib; + src %URI.datatype; #REQUIRED + alt %Text.datatype; #REQUIRED + longdesc %URI.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + width %Length.datatype; #IMPLIED +> +<!-- end of img.attlist -->]]> + +<!-- end of xhtml-image-1.mod --> +]]> + +<!-- Client-side Image Map Module ............................... --> +<!ENTITY % xhtml-csismap.module "INCLUDE" > +<![%xhtml-csismap.module;[ +<!ENTITY % xhtml-csismap.mod + PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-csismap-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Client-side Image Map Module .................................. --> +<!-- file: xhtml-csismap-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-csismap-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Client-side Image Maps + + area, map + + This module declares elements and attributes to support client-side + image maps. This requires that the Image Module (or a module + declaring the img element type) be included in the DTD. + + These can be placed in the same document or grouped in a + separate document, although the latter isn't widely supported +--> + +<!ENTITY % area.element "INCLUDE" > +<![%area.element;[ +<!ENTITY % area.content "EMPTY" > +<!ENTITY % area.qname "area" > +<!ELEMENT %area.qname; %area.content; > +<!-- end of area.element -->]]> + +<!ENTITY % Shape.datatype "( rect | circle | poly | default )"> +<!ENTITY % Coords.datatype "CDATA" > + +<!ENTITY % area.attlist "INCLUDE" > +<![%area.attlist;[ +<!ATTLIST %area.qname; + %Common.attrib; + href %URI.datatype; #IMPLIED + shape %Shape.datatype; 'rect' + coords %Coords.datatype; #IMPLIED + nohref ( nohref ) #IMPLIED + alt %Text.datatype; #REQUIRED + tabindex %Number.datatype; #IMPLIED + accesskey %Character.datatype; #IMPLIED +> +<!-- end of area.attlist -->]]> + +<!-- modify anchor attribute definition list + to allow for client-side image maps +--> +<!ATTLIST %a.qname; + shape %Shape.datatype; 'rect' + coords %Coords.datatype; #IMPLIED +> + +<!-- modify img attribute definition list + to allow for client-side image maps +--> +<!ATTLIST %img.qname; + usemap IDREF #IMPLIED +> + +<!-- modify form input attribute definition list + to allow for client-side image maps +--> +<!ATTLIST %input.qname; + usemap IDREF #IMPLIED +> + +<!-- modify object attribute definition list + to allow for client-side image maps +--> +<!ATTLIST %object.qname; + usemap IDREF #IMPLIED +> + +<!-- 'usemap' points to the 'id' attribute of a <map> element, + which must be in the same document; support for external + document maps was not widely supported in HTML and is + eliminated in XHTML. + + It is considered an error for the element pointed to by + a usemap IDREF to occur in anything but a <map> element. +--> + +<!ENTITY % map.element "INCLUDE" > +<![%map.element;[ +<!ENTITY % map.content + "(( %Block.mix; ) | %area.qname; )+" +> +<!ENTITY % map.qname "map" > +<!ELEMENT %map.qname; %map.content; > +<!-- end of map.element -->]]> + +<!ENTITY % map.attlist "INCLUDE" > +<![%map.attlist;[ +<!ATTLIST %map.qname; + %XHTML.xmlns.attrib; + id ID #REQUIRED + %class.attrib; + %title.attrib; + %Core.extra.attrib; + %I18n.attrib; + %Events.attrib; +> +<!-- end of map.attlist -->]]> + +<!-- end of xhtml-csismap-1.mod --> +]]> + +<!-- Server-side Image Map Module ............................... --> +<!ENTITY % xhtml-ssismap.module "INCLUDE" > +<![%xhtml-ssismap.module;[ +<!ENTITY % xhtml-ssismap.mod + PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-ssismap-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Server-side Image Map Module .................................. --> +<!-- file: xhtml-ssismap-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-ssismap-1.mod" + + Revisions: +#2000-10-22: added declaration for 'ismap' on <input> + ....................................................................... --> + +<!-- Server-side Image Maps + + This adds the 'ismap' attribute to the img and input elements + to support server-side processing of a user selection. +--> + +<!ATTLIST %img.qname; + ismap ( ismap ) #IMPLIED +> + +<!ATTLIST %input.qname; + ismap ( ismap ) #IMPLIED +> + +<!-- end of xhtml-ssismap-1.mod --> +]]> + +<!-- Param Element Module ....................................... --> +<!ENTITY % xhtml-param.module "INCLUDE" > +<![%xhtml-param.module;[ +<!ENTITY % xhtml-param.mod + PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-param-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Param Element Module ..................................... --> +<!-- file: xhtml-param-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-param-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Parameters for Java Applets and Embedded Objects + + param + + This module provides declarations for the param element, + used to provide named property values for the applet + and object elements. +--> + +<!-- param: Named Property Value ....................... --> + +<!ENTITY % param.element "INCLUDE" > +<![%param.element;[ +<!ENTITY % param.content "EMPTY" > +<!ENTITY % param.qname "param" > +<!ELEMENT %param.qname; %param.content; > +<!-- end of param.element -->]]> + +<!ENTITY % param.attlist "INCLUDE" > +<![%param.attlist;[ +<!ATTLIST %param.qname; + %XHTML.xmlns.attrib; + %id.attrib; + name CDATA #REQUIRED + value CDATA #IMPLIED + valuetype ( data | ref | object ) 'data' + type %ContentType.datatype; #IMPLIED +> +<!-- end of param.attlist -->]]> + +<!-- end of xhtml-param-1.mod --> +]]> + +<!-- Embedded Object Module ..................................... --> +<!ENTITY % xhtml-object.module "INCLUDE" > +<![%xhtml-object.module;[ +<!ENTITY % xhtml-object.mod + PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-object-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Embedded Object Module ........................................ --> +<!-- file: xhtml-object-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-object-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Embedded Objects + + object + + This module declares the object element type and its attributes, used + to embed external objects as part of XHTML pages. In the document, + place param elements prior to other content within the object element. + + Note that use of this module requires instantiation of the Param + Element Module. +--> + +<!-- object: Generic Embedded Object ................... --> + +<!ENTITY % object.element "INCLUDE" > +<![%object.element;[ +<!ENTITY % object.content + "( #PCDATA | %Flow.mix; | %param.qname; )*" +> +<!ENTITY % object.qname "object" > +<!ELEMENT %object.qname; %object.content; > +<!-- end of object.element -->]]> + +<!ENTITY % object.attlist "INCLUDE" > +<![%object.attlist;[ +<!ATTLIST %object.qname; + %Common.attrib; + declare ( declare ) #IMPLIED + classid %URI.datatype; #IMPLIED + codebase %URI.datatype; #IMPLIED + data %URI.datatype; #IMPLIED + type %ContentType.datatype; #IMPLIED + codetype %ContentType.datatype; #IMPLIED + archive %URIs.datatype; #IMPLIED + standby %Text.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + name CDATA #IMPLIED + tabindex %Number.datatype; #IMPLIED +> +<!-- end of object.attlist -->]]> + +<!-- end of xhtml-object-1.mod --> +]]> + +<!-- Tables Module ............................................... --> +<!ENTITY % xhtml-table.module "INCLUDE" > +<![%xhtml-table.module;[ +<!ENTITY % xhtml-table.mod + PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-table-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Table Module .................................................. --> +<!-- file: xhtml-table-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-table-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Tables + + table, caption, thead, tfoot, tbody, colgroup, col, tr, th, td + + This module declares element types and attributes used to provide + table markup similar to HTML 4, including features that enable + better accessibility for non-visual user agents. +--> + +<!-- declare qualified element type names: +--> +<!ENTITY % table.qname "table" > +<!ENTITY % caption.qname "caption" > +<!ENTITY % thead.qname "thead" > +<!ENTITY % tfoot.qname "tfoot" > +<!ENTITY % tbody.qname "tbody" > +<!ENTITY % colgroup.qname "colgroup" > +<!ENTITY % col.qname "col" > +<!ENTITY % tr.qname "tr" > +<!ENTITY % th.qname "th" > +<!ENTITY % td.qname "td" > + +<!-- The frame attribute specifies which parts of the frame around + the table should be rendered. The values are not the same as + CALS to avoid a name clash with the valign attribute. +--> +<!ENTITY % frame.attrib + "frame ( void + | above + | below + | hsides + | lhs + | rhs + | vsides + | box + | border ) #IMPLIED" +> + +<!-- The rules attribute defines which rules to draw between cells: + + If rules is absent then assume: + + "none" if border is absent or border="0" otherwise "all" +--> +<!ENTITY % rules.attrib + "rules ( none + | groups + | rows + | cols + | all ) #IMPLIED" +> + +<!-- horizontal alignment attributes for cell contents +--> +<!ENTITY % CellHAlign.attrib + "align ( left + | center + | right + | justify + | char ) #IMPLIED + char %Character.datatype; #IMPLIED + charoff %Length.datatype; #IMPLIED" +> + +<!-- vertical alignment attribute for cell contents +--> +<!ENTITY % CellVAlign.attrib + "valign ( top + | middle + | bottom + | baseline ) #IMPLIED" +> + +<!-- scope is simpler than axes attribute for common tables +--> +<!ENTITY % scope.attrib + "scope ( row + | col + | rowgroup + | colgroup ) #IMPLIED" +> + +<!-- table: Table Element .............................. --> + +<!ENTITY % table.element "INCLUDE" > +<![%table.element;[ +<!ENTITY % table.content + "( %caption.qname;?, ( %col.qname;* | %colgroup.qname;* ), + (( %thead.qname;?, %tfoot.qname;?, %tbody.qname;+ ) | ( %tr.qname;+ )))" +> +<!ELEMENT %table.qname; %table.content; > +<!-- end of table.element -->]]> + +<!ENTITY % table.attlist "INCLUDE" > +<![%table.attlist;[ +<!ATTLIST %table.qname; + %Common.attrib; + summary %Text.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + border %Pixels.datatype; #IMPLIED + %frame.attrib; + %rules.attrib; + cellspacing %Length.datatype; #IMPLIED + cellpadding %Length.datatype; #IMPLIED +> +<!-- end of table.attlist -->]]> + +<!-- caption: Table Caption ............................ --> + +<!ENTITY % caption.element "INCLUDE" > +<![%caption.element;[ +<!ENTITY % caption.content + "( #PCDATA | %Inline.mix; )*" +> +<!ELEMENT %caption.qname; %caption.content; > +<!-- end of caption.element -->]]> + +<!ENTITY % caption.attlist "INCLUDE" > +<![%caption.attlist;[ +<!ATTLIST %caption.qname; + %Common.attrib; +> +<!-- end of caption.attlist -->]]> + +<!-- thead: Table Header ............................... --> + +<!-- Use thead to duplicate headers when breaking table + across page boundaries, or for static headers when + tbody sections are rendered in scrolling panel. +--> + +<!ENTITY % thead.element "INCLUDE" > +<![%thead.element;[ +<!ENTITY % thead.content "( %tr.qname; )+" > +<!ELEMENT %thead.qname; %thead.content; > +<!-- end of thead.element -->]]> + +<!ENTITY % thead.attlist "INCLUDE" > +<![%thead.attlist;[ +<!ATTLIST %thead.qname; + %Common.attrib; + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of thead.attlist -->]]> + +<!-- tfoot: Table Footer ............................... --> + +<!-- Use tfoot to duplicate footers when breaking table + across page boundaries, or for static footers when + tbody sections are rendered in scrolling panel. +--> + +<!ENTITY % tfoot.element "INCLUDE" > +<![%tfoot.element;[ +<!ENTITY % tfoot.content "( %tr.qname; )+" > +<!ELEMENT %tfoot.qname; %tfoot.content; > +<!-- end of tfoot.element -->]]> + +<!ENTITY % tfoot.attlist "INCLUDE" > +<![%tfoot.attlist;[ +<!ATTLIST %tfoot.qname; + %Common.attrib; + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of tfoot.attlist -->]]> + +<!-- tbody: Table Body ................................. --> + +<!-- Use multiple tbody sections when rules are needed + between groups of table rows. +--> + +<!ENTITY % tbody.element "INCLUDE" > +<![%tbody.element;[ +<!ENTITY % tbody.content "( %tr.qname; )+" > +<!ELEMENT %tbody.qname; %tbody.content; > +<!-- end of tbody.element -->]]> + +<!ENTITY % tbody.attlist "INCLUDE" > +<![%tbody.attlist;[ +<!ATTLIST %tbody.qname; + %Common.attrib; + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of tbody.attlist -->]]> + +<!-- colgroup: Table Column Group ...................... --> + +<!-- colgroup groups a set of col elements. It allows you + to group several semantically-related columns together. +--> + +<!ENTITY % colgroup.element "INCLUDE" > +<![%colgroup.element;[ +<!ENTITY % colgroup.content "( %col.qname; )*" > +<!ELEMENT %colgroup.qname; %colgroup.content; > +<!-- end of colgroup.element -->]]> + +<!ENTITY % colgroup.attlist "INCLUDE" > +<![%colgroup.attlist;[ +<!ATTLIST %colgroup.qname; + %Common.attrib; + span %Number.datatype; '1' + width %MultiLength.datatype; #IMPLIED + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of colgroup.attlist -->]]> + +<!-- col: Table Column ................................. --> + +<!-- col elements define the alignment properties for + cells in one or more columns. + + The width attribute specifies the width of the + columns, e.g. + + width="64" width in screen pixels + width="0.5*" relative width of 0.5 + + The span attribute causes the attributes of one + col element to apply to more than one column. +--> + +<!ENTITY % col.element "INCLUDE" > +<![%col.element;[ +<!ENTITY % col.content "EMPTY" > +<!ELEMENT %col.qname; %col.content; > +<!-- end of col.element -->]]> + +<!ENTITY % col.attlist "INCLUDE" > +<![%col.attlist;[ +<!ATTLIST %col.qname; + %Common.attrib; + span %Number.datatype; '1' + width %MultiLength.datatype; #IMPLIED + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of col.attlist -->]]> + +<!-- tr: Table Row ..................................... --> + +<!ENTITY % tr.element "INCLUDE" > +<![%tr.element;[ +<!ENTITY % tr.content "( %th.qname; | %td.qname; )+" > +<!ELEMENT %tr.qname; %tr.content; > +<!-- end of tr.element -->]]> + +<!ENTITY % tr.attlist "INCLUDE" > +<![%tr.attlist;[ +<!ATTLIST %tr.qname; + %Common.attrib; + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of tr.attlist -->]]> + +<!-- th: Table Header Cell ............................. --> + +<!-- th is for header cells, td for data, + but for cells acting as both use td +--> + +<!ENTITY % th.element "INCLUDE" > +<![%th.element;[ +<!ENTITY % th.content + "( #PCDATA | %Flow.mix; )*" +> +<!ELEMENT %th.qname; %th.content; > +<!-- end of th.element -->]]> + +<!ENTITY % th.attlist "INCLUDE" > +<![%th.attlist;[ +<!ATTLIST %th.qname; + %Common.attrib; + abbr %Text.datatype; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + %scope.attrib; + rowspan %Number.datatype; '1' + colspan %Number.datatype; '1' + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of th.attlist -->]]> + +<!-- td: Table Data Cell ............................... --> + +<!ENTITY % td.element "INCLUDE" > +<![%td.element;[ +<!ENTITY % td.content + "( #PCDATA | %Flow.mix; )*" +> +<!ELEMENT %td.qname; %td.content; > +<!-- end of td.element -->]]> + +<!ENTITY % td.attlist "INCLUDE" > +<![%td.attlist;[ +<!ATTLIST %td.qname; + %Common.attrib; + abbr %Text.datatype; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + %scope.attrib; + rowspan %Number.datatype; '1' + colspan %Number.datatype; '1' + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of td.attlist -->]]> + +<!-- end of xhtml-table-1.mod --> +]]> + +<!-- Forms Module ............................................... --> +<!ENTITY % xhtml-form.module "INCLUDE" > +<![%xhtml-form.module;[ +<!ENTITY % xhtml-form.mod + PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-form-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Forms Module .................................................. --> +<!-- file: xhtml-form-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-form-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Forms + + form, label, input, select, optgroup, option, + textarea, fieldset, legend, button + + This module declares markup to provide support for online + forms, based on the features found in HTML 4 forms. +--> + +<!-- declare qualified element type names: +--> +<!ENTITY % form.qname "form" > +<!ENTITY % label.qname "label" > +<!ENTITY % input.qname "input" > +<!ENTITY % select.qname "select" > +<!ENTITY % optgroup.qname "optgroup" > +<!ENTITY % option.qname "option" > +<!ENTITY % textarea.qname "textarea" > +<!ENTITY % fieldset.qname "fieldset" > +<!ENTITY % legend.qname "legend" > +<!ENTITY % button.qname "button" > + +<!-- %BlkNoForm.mix; includes all non-form block elements, + plus %Misc.class; +--> +<!ENTITY % BlkNoForm.mix + "%Heading.class; + | %List.class; + | %BlkStruct.class; + %BlkPhras.class; + %BlkPres.class; + %Table.class; + %Block.extra; + %Misc.class;" +> + +<!-- form: Form Element ................................ --> + +<!ENTITY % form.element "INCLUDE" > +<![%form.element;[ +<!ENTITY % form.content + "( %BlkNoForm.mix; + | %fieldset.qname; )+" +> +<!ELEMENT %form.qname; %form.content; > +<!-- end of form.element -->]]> + +<!ENTITY % form.attlist "INCLUDE" > +<![%form.attlist;[ +<!ATTLIST %form.qname; + %Common.attrib; + action %URI.datatype; #REQUIRED + method ( get | post ) 'get' + enctype %ContentType.datatype; 'application/x-www-form-urlencoded' + accept-charset %Charsets.datatype; #IMPLIED + accept %ContentTypes.datatype; #IMPLIED +> +<!-- end of form.attlist -->]]> + +<!-- label: Form Field Label Text ...................... --> + +<!-- Each label must not contain more than ONE field +--> + +<!ENTITY % label.element "INCLUDE" > +<![%label.element;[ +<!ENTITY % label.content + "( #PCDATA + | %input.qname; | %select.qname; | %textarea.qname; | %button.qname; + | %InlStruct.class; + %InlPhras.class; + %I18n.class; + %InlPres.class; + %Anchor.class; + %InlSpecial.class; + %Inline.extra; + %Misc.class; )*" +> +<!ELEMENT %label.qname; %label.content; > +<!-- end of label.element -->]]> + +<!ENTITY % label.attlist "INCLUDE" > +<![%label.attlist;[ +<!ATTLIST %label.qname; + %Common.attrib; + for IDREF #IMPLIED + accesskey %Character.datatype; #IMPLIED +> +<!-- end of label.attlist -->]]> + +<!-- input: Form Control ............................... --> + +<!ENTITY % input.element "INCLUDE" > +<![%input.element;[ +<!ENTITY % input.content "EMPTY" > +<!ELEMENT %input.qname; %input.content; > +<!-- end of input.element -->]]> + +<!ENTITY % input.attlist "INCLUDE" > +<![%input.attlist;[ +<!ENTITY % InputType.class + "( text | password | checkbox | radio | submit + | reset | file | hidden | image | button )" +> +<!-- attribute 'name' required for all but submit & reset +--> +<!ATTLIST %input.qname; + %Common.attrib; + type %InputType.class; 'text' + name CDATA #IMPLIED + value CDATA #IMPLIED + checked ( checked ) #IMPLIED + disabled ( disabled ) #IMPLIED + readonly ( readonly ) #IMPLIED + size %Number.datatype; #IMPLIED + maxlength %Number.datatype; #IMPLIED + src %URI.datatype; #IMPLIED + alt %Text.datatype; #IMPLIED + tabindex %Number.datatype; #IMPLIED + accesskey %Character.datatype; #IMPLIED + accept %ContentTypes.datatype; #IMPLIED +> +<!-- end of input.attlist -->]]> + +<!-- select: Option Selector ........................... --> + +<!ENTITY % select.element "INCLUDE" > +<![%select.element;[ +<!ENTITY % select.content + "( %optgroup.qname; | %option.qname; )+" +> +<!ELEMENT %select.qname; %select.content; > +<!-- end of select.element -->]]> + +<!ENTITY % select.attlist "INCLUDE" > +<![%select.attlist;[ +<!ATTLIST %select.qname; + %Common.attrib; + name CDATA #IMPLIED + size %Number.datatype; #IMPLIED + multiple ( multiple ) #IMPLIED + disabled ( disabled ) #IMPLIED + tabindex %Number.datatype; #IMPLIED +> +<!-- end of select.attlist -->]]> + +<!-- optgroup: Option Group ............................ --> + +<!ENTITY % optgroup.element "INCLUDE" > +<![%optgroup.element;[ +<!ENTITY % optgroup.content "( %option.qname; )+" > +<!ELEMENT %optgroup.qname; %optgroup.content; > +<!-- end of optgroup.element -->]]> + +<!ENTITY % optgroup.attlist "INCLUDE" > +<![%optgroup.attlist;[ +<!ATTLIST %optgroup.qname; + %Common.attrib; + disabled ( disabled ) #IMPLIED + label %Text.datatype; #REQUIRED +> +<!-- end of optgroup.attlist -->]]> + +<!-- option: Selectable Choice ......................... --> + +<!ENTITY % option.element "INCLUDE" > +<![%option.element;[ +<!ENTITY % option.content "( #PCDATA )" > +<!ELEMENT %option.qname; %option.content; > +<!-- end of option.element -->]]> + +<!ENTITY % option.attlist "INCLUDE" > +<![%option.attlist;[ +<!ATTLIST %option.qname; + %Common.attrib; + selected ( selected ) #IMPLIED + disabled ( disabled ) #IMPLIED + label %Text.datatype; #IMPLIED + value CDATA #IMPLIED +> +<!-- end of option.attlist -->]]> + +<!-- textarea: Multi-Line Text Field ................... --> + +<!ENTITY % textarea.element "INCLUDE" > +<![%textarea.element;[ +<!ENTITY % textarea.content "( #PCDATA )" > +<!ELEMENT %textarea.qname; %textarea.content; > +<!-- end of textarea.element -->]]> + +<!ENTITY % textarea.attlist "INCLUDE" > +<![%textarea.attlist;[ +<!ATTLIST %textarea.qname; + %Common.attrib; + name CDATA #IMPLIED + rows %Number.datatype; #REQUIRED + cols %Number.datatype; #REQUIRED + disabled ( disabled ) #IMPLIED + readonly ( readonly ) #IMPLIED + tabindex %Number.datatype; #IMPLIED + accesskey %Character.datatype; #IMPLIED +> +<!-- end of textarea.attlist -->]]> + +<!-- fieldset: Form Control Group ...................... --> + +<!-- #PCDATA is to solve the mixed content problem, + per specification only whitespace is allowed +--> + +<!ENTITY % fieldset.element "INCLUDE" > +<![%fieldset.element;[ +<!ENTITY % fieldset.content + "( #PCDATA | %legend.qname; | %Flow.mix; )*" +> +<!ELEMENT %fieldset.qname; %fieldset.content; > +<!-- end of fieldset.element -->]]> + +<!ENTITY % fieldset.attlist "INCLUDE" > +<![%fieldset.attlist;[ +<!ATTLIST %fieldset.qname; + %Common.attrib; +> +<!-- end of fieldset.attlist -->]]> + +<!-- legend: Fieldset Legend ........................... --> + +<!ENTITY % legend.element "INCLUDE" > +<![%legend.element;[ +<!ENTITY % legend.content + "( #PCDATA | %Inline.mix; )*" +> +<!ELEMENT %legend.qname; %legend.content; > +<!-- end of legend.element -->]]> + +<!ENTITY % legend.attlist "INCLUDE" > +<![%legend.attlist;[ +<!ATTLIST %legend.qname; + %Common.attrib; + accesskey %Character.datatype; #IMPLIED +> +<!-- end of legend.attlist -->]]> + +<!-- button: Push Button ............................... --> + +<!ENTITY % button.element "INCLUDE" > +<![%button.element;[ +<!ENTITY % button.content + "( #PCDATA + | %BlkNoForm.mix; + | %InlStruct.class; + %InlPhras.class; + %InlPres.class; + %I18n.class; + %InlSpecial.class; + %Inline.extra; )*" +> +<!ELEMENT %button.qname; %button.content; > +<!-- end of button.element -->]]> + +<!ENTITY % button.attlist "INCLUDE" > +<![%button.attlist;[ +<!ATTLIST %button.qname; + %Common.attrib; + name CDATA #IMPLIED + value CDATA #IMPLIED + type ( button | submit | reset ) 'submit' + disabled ( disabled ) #IMPLIED + tabindex %Number.datatype; #IMPLIED + accesskey %Character.datatype; #IMPLIED +> +<!-- end of button.attlist -->]]> + +<!-- end of xhtml-form-1.mod --> +]]> + +<!-- Legacy Markup ............................................... --> +<!ENTITY % xhtml-legacy.module "IGNORE" > +<![%xhtml-legacy.module;[ +<!ENTITY % xhtml-legacy.mod + PUBLIC "-//W3C//ELEMENTS XHTML Legacy Markup 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-legacy-1.mod" > +%xhtml-legacy.mod;]]> + +<!-- Document Structure Module (required) ....................... --> +<!ENTITY % xhtml-struct.module "INCLUDE" > +<![%xhtml-struct.module;[ +<!ENTITY % xhtml-struct.mod + PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Structure Module .............................................. --> +<!-- file: xhtml-struct-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Document Structure + + title, head, body, html + + The Structure Module defines the major structural elements and + their attributes. + + Note that the content model of the head element type is redeclared + when the Base Module is included in the DTD. + + The parameter entity containing the XML namespace URI value used + for XHTML is '%XHTML.xmlns;', defined in the Qualified Names module. +--> + +<!-- title: Document Title ............................. --> + +<!-- The title element is not considered part of the flow of text. + It should be displayed, for example as the page header or + window title. Exactly one title is required per document. +--> + +<!ENTITY % title.element "INCLUDE" > +<![%title.element;[ +<!ENTITY % title.content "( #PCDATA )" > +<!ENTITY % title.qname "title" > +<!ELEMENT %title.qname; %title.content; > +<!-- end of title.element -->]]> + +<!ENTITY % title.attlist "INCLUDE" > +<![%title.attlist;[ +<!ATTLIST %title.qname; + %XHTML.xmlns.attrib; + %I18n.attrib; +> +<!-- end of title.attlist -->]]> + +<!-- head: Document Head ............................... --> + +<!ENTITY % head.element "INCLUDE" > +<![%head.element;[ +<!ENTITY % head.content + "( %HeadOpts.mix;, %title.qname;, %HeadOpts.mix; )" +> +<!ENTITY % head.qname "head" > +<!ELEMENT %head.qname; %head.content; > +<!-- end of head.element -->]]> + +<!ENTITY % head.attlist "INCLUDE" > +<![%head.attlist;[ +<!-- reserved for future use with document profiles +--> +<!ENTITY % profile.attrib + "profile %URI.datatype; '%XHTML.profile;'" +> + +<!ATTLIST %head.qname; + %XHTML.xmlns.attrib; + %I18n.attrib; + %profile.attrib; +> +<!-- end of head.attlist -->]]> + +<!-- body: Document Body ............................... --> + +<!ENTITY % body.element "INCLUDE" > +<![%body.element;[ +<!ENTITY % body.content + "( %Block.mix; )+" +> +<!ENTITY % body.qname "body" > +<!ELEMENT %body.qname; %body.content; > +<!-- end of body.element -->]]> + +<!ENTITY % body.attlist "INCLUDE" > +<![%body.attlist;[ +<!ATTLIST %body.qname; + %Common.attrib; +> +<!-- end of body.attlist -->]]> + +<!-- html: XHTML Document Element ...................... --> + +<!ENTITY % html.element "INCLUDE" > +<![%html.element;[ +<!ENTITY % html.content "( %head.qname;, %body.qname; )" > +<!ENTITY % html.qname "html" > +<!ELEMENT %html.qname; %html.content; > +<!-- end of html.element -->]]> + +<!ENTITY % html.attlist "INCLUDE" > +<![%html.attlist;[ +<!-- version attribute value defined in driver +--> +<!ENTITY % XHTML.version.attrib + "version %FPI.datatype; #FIXED '%XHTML.version;'" +> + +<!-- see the Qualified Names module for information + on how to extend XHTML using XML namespaces +--> +<!ATTLIST %html.qname; + %XHTML.xmlns.attrib; + %XHTML.version.attrib; + %I18n.attrib; +> +<!-- end of html.attlist -->]]> + +<!-- end of xhtml-struct-1.mod --> +]]> + +<!-- end of XHTML 1.1 DTD ................................................. --> +<!-- ....................................................................... --> + +]]> + +<!-- instantiate MathML 2.0 DTD ................................. --> +<![%MATHML.module;[ +<!ENTITY % MATHML.dtd.decl + 'PUBLIC "-//W3C//DTD MathML 2.0//EN" + "%MATHML.dtd.sysid;"' +> +<!ENTITY % MATHML.dtd %MATHML.dtd.decl; > +<!-- MathML 2.0 DTD ....................................................... --> +<!-- file: mathml2.dtd +--> + +<!-- MathML 2.0 DTD + + This is the Mathematical Markup Language (MathML) 2.0, an XML + application for describing mathematical notation and capturing + both its structure and content. + + Copyright 1998-2000 World Wide Web Consortium + (Massachusetts Institute of Technology, Institut National de + Recherche en Informatique et en Automatique, Keio University). + All Rights Reserved. + + Permission to use, copy, modify and distribute the XHTML 1.1 DTD and + its accompanying documentation for any purpose and without fee is + hereby granted in perpetuity, provided that the above copyright notice + and this paragraph appear in all copies. The copyright holders make + no representation about the suitability of the DTD for any purpose. + + It is provided "as is" without expressed or implied warranty. + + Revision: $Id: xhtml-math-svg-flat-20020430.dtd,v 1.2 2002-08-20 01:51:25 link Exp $ + + This entity may be identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD MathML 2.0//EN" + SYSTEM "mathml2.dtd" + + Revisions: editor and revision history at EOF +--> + + +<!-- MathML Qualified Names module ............................... --> +<!ENTITY % mathml-qname.module "INCLUDE" > +<![%mathml-qname.module;[ +<!ENTITY % mathml-qname.mod + PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN" + "mathml2-qname-1.mod" > +%mathml-qname.mod;]]> + +<!-- if %NS.prefixed; is INCLUDE, include all NS attributes, + otherwise just those associated with MathML +--> +<![%NS.prefixed;[ +<!ENTITY % MATHML.NamespaceDecl.attrib + "%NamespaceDecl.attrib;" +> +]]> +<!ENTITY % MATHML.NamespaceDecl.attrib + "%MATHML.xmlns.attrib;" +> + +<!-- Attributes shared by all elements .......................... --> + +<!ENTITY % MATHML.Common.attrib + "%MATHML.NamespaceDecl.attrib; + xlink:href CDATA #IMPLIED + class CDATA #IMPLIED + style CDATA #IMPLIED + id ID #IMPLIED + xref IDREF #IMPLIED + other CDATA #IMPLIED" +> + +<!-- Presentation element set ................................... --> + +<!-- Attribute definitions --> + +<!ENTITY % att-fontsize + "fontsize CDATA #IMPLIED" > +<!ENTITY % att-fontweight + "fontweight ( normal | bold ) #IMPLIED" > +<!ENTITY % att-fontstyle + "fontstyle ( normal | italic ) #IMPLIED" > +<!ENTITY % att-fontfamily + "fontfamily CDATA #IMPLIED" > +<!ENTITY % att-color + "color CDATA #IMPLIED" > + +<!-- MathML2 typographically-distinguished symbol attributes --> + +<!ENTITY % att-mathvariant + "mathvariant CDATA #IMPLIED" > +<!ENTITY % att-mathsize + "mathsize CDATA #IMPLIED" > +<!ENTITY % att-mathcolor + "mathcolor CDATA #IMPLIED" > +<!ENTITY % att-mathbackground + "mathbackground CDATA #IMPLIED" > + +<!ENTITY % att-fontinfo + "%att-fontsize; + %att-fontweight; + %att-fontstyle; + %att-fontfamily; + %att-color; + %att-mathvariant; + %att-mathsize; + %att-mathcolor; + %att-mathbackground;" +> + +<!ENTITY % att-form + "form ( prefix | infix | postfix ) #IMPLIED" > +<!ENTITY % att-fence + "fence ( true | false ) #IMPLIED" > +<!ENTITY % att-separator + "separator ( true | false ) #IMPLIED" > +<!ENTITY % att-lspace + "lspace CDATA #IMPLIED" > +<!ENTITY % att-rspace + "rspace CDATA #IMPLIED" > +<!ENTITY % att-stretchy + "stretchy ( true | false ) #IMPLIED" > +<!ENTITY % att-symmetric + "symmetric ( true | false ) #IMPLIED" > +<!ENTITY % att-maxsize + "maxsize CDATA #IMPLIED" > +<!ENTITY % att-minsize + "minsize CDATA #IMPLIED" > +<!ENTITY % att-largeop + "largeop ( true | false) #IMPLIED" > +<!ENTITY % att-movablelimits + "movablelimits ( true | false ) #IMPLIED" > +<!ENTITY % att-accent + "accent ( true | false ) #IMPLIED" > + +<!ENTITY % att-opinfo + "%att-form; + %att-fence; + %att-separator; + %att-lspace; + %att-rspace; + %att-stretchy; + %att-symmetric; + %att-maxsize; + %att-minsize; + %att-largeop; + %att-movablelimits; + %att-accent;" +> +<!ENTITY % att-width + "width CDATA #IMPLIED" > +<!ENTITY % att-height + "height CDATA #IMPLIED" > +<!ENTITY % att-depth + "depth CDATA #IMPLIED" > +<!ENTITY % att-linebreak + "linebreak CDATA #IMPLIED" > +<!ENTITY % att-sizeinfo + "%att-width; + %att-height; + %att-depth;" +> +<!ENTITY % att-lquote + "lquote CDATA #IMPLIED" > +<!ENTITY % att-rquote + "rquote CDATA #IMPLIED" > +<!ENTITY % att-linethickness + "linethickness CDATA #IMPLIED" > +<!ENTITY % att-scriptlevel + "scriptlevel CDATA #IMPLIED" > +<!ENTITY % att-displaystyle + "displaystyle ( true | false ) #IMPLIED" > +<!ENTITY % att-scriptsizemultiplier + "scriptsizemultiplier CDATA #IMPLIED" > +<!ENTITY % att-scriptminsize + "scriptminsize CDATA #IMPLIED" > +<!ENTITY % att-background + "background CDATA #IMPLIED" > +<!ENTITY % att-veryverythinmathspace + "veryverythinmathspace CDATA #IMPLIED" > +<!ENTITY % att-verythinmathspace + "verythinmathspace CDATA #IMPLIED" > +<!ENTITY % att-thinmathspace + "thinmathspace CDATA #IMPLIED" > +<!ENTITY % att-mediummathspace + "mediummathspace CDATA #IMPLIED" > +<!ENTITY % att-thickmathspace + "thickmathspace CDATA #IMPLIED" > +<!ENTITY % att-verythickmathspace + "verythickmathspace CDATA #IMPLIED" > +<!ENTITY % att-veryverythickmathspace + "veryverythickmathspace CDATA #IMPLIED" > +<!ENTITY % att-open + "open CDATA #IMPLIED" > +<!ENTITY % att-close + "close CDATA #IMPLIED" > +<!ENTITY % att-separators + "separators CDATA #IMPLIED" > +<!ENTITY % att-subscriptshift + "subscriptshift CDATA #IMPLIED" > +<!ENTITY % att-superscriptshift + "superscriptshift CDATA #IMPLIED" > +<!ENTITY % att-accentunder + "accentunder ( true | false ) #IMPLIED" > +<!ENTITY % att-align + "align CDATA #IMPLIED" > +<!ENTITY % att-rowalign + "rowalign CDATA #IMPLIED" > +<!ENTITY % att-columnalign + "columnalign CDATA #IMPLIED" > +<!ENTITY % att-columnwidth + "columnwidth CDATA #IMPLIED" > +<!ENTITY % att-groupalign + "groupalign CDATA #IMPLIED" > +<!ENTITY % att-alignmentscope + "alignmentscope CDATA #IMPLIED" > +<!ENTITY % att-rowspacing + "rowspacing CDATA #IMPLIED" > +<!ENTITY % att-columnspacing + "columnspacing CDATA #IMPLIED" > +<!ENTITY % att-rowlines + "rowlines CDATA #IMPLIED" > +<!ENTITY % att-columnlines + "columnlines CDATA #IMPLIED" > +<!ENTITY % att-frame + "frame ( none | solid | dashed ) #IMPLIED" > +<!ENTITY % att-framespacing + "framespacing CDATA #IMPLIED" > +<!ENTITY % att-equalrows + "equalrows CDATA #IMPLIED" > +<!ENTITY % att-equalcolumns + "equalcolumns CDATA #IMPLIED" > + +<!ENTITY % att-tableinfo + "%att-align; + %att-rowalign; + %att-columnalign; + %att-columnwidth; + %att-groupalign; + %att-alignmentscope; + %att-rowspacing; + %att-columnspacing; + %att-rowlines; + %att-columnlines; + %att-frame; + %att-framespacing; + %att-equalrows; + %att-equalcolumns; + %att-displaystyle;" +> + +<!ENTITY % att-rowspan + "rowspan CDATA #IMPLIED" > +<!ENTITY % att-columnspan + "columnspan CDATA #IMPLIED" > +<!ENTITY % att-edge + "edge ( left | right ) #IMPLIED" > +<!ENTITY % att-actiontype + "actiontype CDATA #IMPLIED" > +<!ENTITY % att-selection + "selection CDATA #IMPLIED" > + +<!ENTITY % att-name + "name CDATA #IMPLIED" > +<!ENTITY % att-alt + "alt CDATA #IMPLIED" > +<!ENTITY % att-index + "index CDATA #IMPLIED" > + +<!ENTITY % att-bevelled + "bevelled CDATA #IMPLIED" > + +<!-- Presentation schemata with content --> + +<!ENTITY % ptoken + "%mi.qname; | %mn.qname; | %mo.qname; + | %mtext.qname; | %ms.qname;" > + +<!ATTLIST %mi.qname; + %MATHML.Common.attrib; + %att-fontinfo; +> + +<!ATTLIST %mn.qname; + %MATHML.Common.attrib; + %att-fontinfo; +> + +<!ATTLIST %mo.qname; + %MATHML.Common.attrib; + %att-fontinfo; + %att-opinfo; +> + +<!ATTLIST %mtext.qname; + %MATHML.Common.attrib; + %att-fontinfo; +> + +<!ATTLIST %ms.qname; + %MATHML.Common.attrib; + %att-fontinfo; + %att-lquote; + %att-rquote; +> + +<!-- Empty presentation schemata --> + +<!ENTITY % petoken + "%mspace.qname;" > +<!ELEMENT %mspace.qname; EMPTY > + +<!ATTLIST %mspace.qname; + %att-sizeinfo; + %att-linebreak; + %MATHML.Common.attrib; +> + +<!-- Presentation: general layout schemata --> + +<!ENTITY % pgenschema + "%mrow.qname; | %mfrac.qname; | %msqrt.qname; | %mroot.qname; + | %menclose.qname; | %mstyle.qname; | %merror.qname; + | %mpadded.qname; | %mphantom.qname; | %mfenced.qname;" > + +<!ATTLIST %mrow.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %mfrac.qname; + %MATHML.Common.attrib; + %att-bevelled; + %att-linethickness; +> + +<!ATTLIST %msqrt.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %menclose.qname; + %MATHML.Common.attrib; + notation CDATA 'longdiv' > + +<!ATTLIST %mroot.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %mstyle.qname; + %MATHML.Common.attrib; + %att-fontinfo; + %att-opinfo; + %att-lquote; + %att-rquote; + %att-linethickness; + %att-scriptlevel; + %att-scriptsizemultiplier; + %att-scriptminsize; + %att-background; + %att-veryverythinmathspace; + %att-verythinmathspace; + %att-thinmathspace; + %att-mediummathspace; + %att-thickmathspace; + %att-verythickmathspace; + %att-veryverythickmathspace; + %att-open; + %att-close; + %att-separators; + %att-subscriptshift; + %att-superscriptshift; + %att-accentunder; + %att-tableinfo; + %att-rowspan; + %att-columnspan; + %att-edge; + %att-actiontype; + %att-selection; +> + +<!ATTLIST %merror.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %mpadded.qname; + %MATHML.Common.attrib; + %att-sizeinfo; + %att-lspace; +> + +<!ATTLIST %mphantom.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %mfenced.qname; + %MATHML.Common.attrib; + %att-open; + %att-close; + %att-separators; +> + +<!-- Presentation layout schemata: scripts and limits --> + +<!ENTITY % pscrschema + "%msub.qname; | %msup.qname; | %msubsup.qname; | %munder.qname; + | %mover.qname; | %munderover.qname; | %mmultiscripts.qname;" > + +<!ATTLIST %msub.qname; + %MATHML.Common.attrib; + %att-subscriptshift; +> + +<!ATTLIST %msup.qname; + %MATHML.Common.attrib; + %att-superscriptshift; +> + +<!ATTLIST %msubsup.qname; + %MATHML.Common.attrib; + %att-subscriptshift; + %att-superscriptshift; +> + +<!ATTLIST %munder.qname; + %MATHML.Common.attrib; + %att-accentunder; +> + +<!ATTLIST %mover.qname; + %MATHML.Common.attrib; + %att-accent; +> + +<!ATTLIST %munderover.qname; + %MATHML.Common.attrib; + %att-accent; + %att-accentunder; +> + +<!ATTLIST %mmultiscripts.qname; + %MATHML.Common.attrib; + %att-subscriptshift; + %att-superscriptshift; +> + +<!-- Presentation layout schemata: empty elements for scripts --> + +<!ENTITY % pscreschema + "%mprescripts.qname; | %none.qname;" > + +<!ELEMENT %mprescripts.qname; EMPTY > +<!ATTLIST %mprescripts.qname; + %MATHML.xmlns.attrib; > + +<!ELEMENT %none.qname; EMPTY > +<!ATTLIST %none.qname; + %MATHML.xmlns.attrib; > + +<!-- Presentation layout schemata: tables --> + +<!ENTITY % ptabschema + "%mtable.qname; | %mtr.qname; | %mlabeledtr.qname; | %mtd.qname;" > + +<!ATTLIST %mtable.qname; + %MATHML.Common.attrib; + %att-tableinfo; +> + +<!ATTLIST %mtr.qname; + %MATHML.Common.attrib; + %att-rowalign; + %att-columnalign; + %att-groupalign; +> + +<!ATTLIST %mlabeledtr.qname; + %MATHML.Common.attrib; + %att-rowalign; + %att-columnalign; + %att-groupalign; +> + +<!ATTLIST %mtd.qname; + %MATHML.Common.attrib; + %att-rowalign; + %att-columnalign; + %att-groupalign; + %att-rowspan; + %att-columnspan; +> + +<!ENTITY % plschema + "%pgenschema; | %pscrschema; | %ptabschema;" > + +<!-- Empty presentation layout schemata --> + +<!ENTITY % peschema + "%maligngroup.qname; | %malignmark.qname;" > + +<!ELEMENT %malignmark.qname; EMPTY > + +<!ATTLIST %malignmark.qname; + %att-edge; > + +<!ELEMENT %maligngroup.qname; EMPTY > +<!ATTLIST %maligngroup.qname; + %MATHML.Common.attrib; + %att-groupalign; +> + + +<!ELEMENT %mglyph.qname; EMPTY > +<!ATTLIST %mglyph.qname; + %att-alt; + %att-fontfamily; + %att-index; > + +<!-- Presentation action schemata --> + +<!ENTITY % pactions + "%maction.qname;" > +<!ATTLIST %maction.qname; + %MATHML.Common.attrib; + %att-actiontype; + %att-selection; +> + +<!-- The following entity for substitution into + content constructs excludes elements that + are not valid as expressions. +--> + +<!ENTITY % PresInCont + "%ptoken; | %petoken; | + %plschema; | %peschema; | %pactions;" > + +<!-- Presentation entity: all presentation constructs --> + +<!ENTITY % Presentation + "%ptoken; | %petoken; | %pscreschema; | + %plschema; | %peschema; | %pactions;"> + +<!-- Content element set ........................................ --> + +<!-- Attribute definitions --> + +<!ENTITY % att-base + "base CDATA '10'" > +<!ENTITY % att-closure + "closure CDATA 'closed'" > +<!ENTITY % att-definition + "definitionURL CDATA ''" > +<!ENTITY % att-encoding + "encoding CDATA ''" > +<!ENTITY % att-nargs + "nargs CDATA '1'" > +<!ENTITY % att-occurrence + "occurrence CDATA 'function-model'" > +<!ENTITY % att-order + "order CDATA 'numeric'" > +<!ENTITY % att-scope + "scope CDATA 'local'" > +<!ENTITY % att-type + "type CDATA #IMPLIED" > + +<!-- Content elements: leaf nodes --> + +<!ENTITY % ctoken + "%csymbol.qname; | %ci.qname; | %cn.qname;" > + +<!ATTLIST %ci.qname; + %MATHML.Common.attrib; + %att-type; + %att-definition; + %att-encoding; +> + +<!ATTLIST %csymbol.qname; + %MATHML.Common.attrib; + %att-encoding; + %att-type; + %att-definition; +> + +<!ATTLIST %cn.qname; + %MATHML.Common.attrib; + %att-type; + %att-base; + %att-definition; + %att-encoding; +> + +<!-- Content elements: specials --> + +<!ENTITY % cspecial + "%apply.qname; | %reln.qname; | + %lambda.qname;" > + +<!ATTLIST %apply.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %reln.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %lambda.qname; + %MATHML.Common.attrib; +> + +<!-- Content elements: others --> + +<!ENTITY % cother + "%condition.qname; | %declare.qname; | %sep.qname;" > + +<!ATTLIST %condition.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %declare.qname; + %MATHML.Common.attrib; + %att-type; + %att-scope; + %att-nargs; + %att-occurrence; + %att-definition; + %att-encoding; +> + +<!ELEMENT %sep.qname; EMPTY > +<!ATTLIST %sep.qname; + %MATHML.xmlns.attrib; > + +<!-- Content elements: semantic mapping --> + +<!ENTITY % csemantics + "%semantics.qname; | %annotation.qname; | + %annotation-xml.qname;" > + +<!ATTLIST %semantics.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ATTLIST %annotation.qname; + %MATHML.Common.attrib; + %att-encoding; +> + +<!ATTLIST %annotation-xml.qname; + %MATHML.Common.attrib; + %att-encoding; +> + +<!-- Content elements: constructors --> + +<!ENTITY % cconstructor + "%interval.qname; | %list.qname; | %matrix.qname; + | %matrixrow.qname; | %set.qname; | %vector.qname; + | %piecewise.qname; " > + +<!ATTLIST %interval.qname; + %MATHML.Common.attrib; + %att-closure; +> + +<!ATTLIST %set.qname; + %MATHML.Common.attrib; + %att-type; +> + +<!ATTLIST %list.qname; + %MATHML.Common.attrib; + %att-order; +> + +<!ATTLIST %vector.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %matrix.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %matrixrow.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %piecewise.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %piece.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %otherwise.qname; + %MATHML.Common.attrib; +> + + +<!-- Content elements: symbols --> + +<!ENTITY % c0ary + "%integers.qname; | + %reals.qname; | + %rationals.qname; | + %naturalnumbers.qname; | + %complexes.qname; | + %primes.qname; | + %exponentiale.qname; | + %imaginaryi.qname; | + %notanumber.qname; | + %true.qname; | + %false.qname; | + %emptyset.qname; | + %pi.qname; | + %eulergamma.qname; | + %infinity.qname;" > + +<!ELEMENT %integers.qname; EMPTY > +<!ATTLIST %integers.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %reals.qname; EMPTY > +<!ATTLIST %reals.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %rationals.qname; EMPTY > +<!ATTLIST %rationals.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %naturalnumbers.qname; EMPTY > +<!ATTLIST %naturalnumbers.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %complexes.qname; EMPTY > +<!ATTLIST %complexes.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %primes.qname; EMPTY > +<!ATTLIST %primes.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %exponentiale.qname; EMPTY > +<!ATTLIST %exponentiale.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %imaginaryi.qname; EMPTY > +<!ATTLIST %imaginaryi.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %notanumber.qname; EMPTY > +<!ATTLIST %notanumber.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %true.qname; EMPTY > +<!ATTLIST %true.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %false.qname; EMPTY > +<!ATTLIST %false.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %emptyset.qname; EMPTY > +<!ATTLIST %emptyset.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %pi.qname; EMPTY > +<!ATTLIST %pi.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %eulergamma.qname; EMPTY > +<!ATTLIST %eulergamma.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %infinity.qname; EMPTY > +<!ATTLIST %infinity.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!-- Content elements: operators --> + +<!ENTITY % cfuncop1ary + "%inverse.qname; | %ident.qname;| + %domain.qname; | %codomain.qname; | + %image.qname; " > + +<!ELEMENT %inverse.qname; EMPTY > +<!ATTLIST %inverse.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %domain.qname; EMPTY > +<!ATTLIST %domain.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %codomain.qname; EMPTY > +<!ATTLIST %codomain.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %image.qname; EMPTY > +<!ATTLIST %image.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + + + +<!ENTITY % cfuncopnary + "%fn.qname; | %compose.qname;" > + +<!ATTLIST %fn.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %ident.qname; EMPTY > +<!ATTLIST %ident.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %compose.qname; EMPTY > +<!ATTLIST %compose.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % carithop1ary + "%abs.qname; | %conjugate.qname; | %exp.qname; | %factorial.qname; | + %arg.qname; | %real.qname; | %imaginary.qname; | + %floor.qname; | %ceiling.qname;" > + +<!ELEMENT %exp.qname; EMPTY > +<!ATTLIST %exp.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %abs.qname; EMPTY > +<!ATTLIST %abs.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arg.qname; EMPTY > +<!ATTLIST %arg.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %real.qname; EMPTY > +<!ATTLIST %real.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %imaginary.qname; EMPTY > +<!ATTLIST %imaginary.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %conjugate.qname; EMPTY > +<!ATTLIST %conjugate.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %factorial.qname; EMPTY > +<!ATTLIST %factorial.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + + +<!ELEMENT %floor.qname; EMPTY > +<!ATTLIST %floor.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %ceiling.qname; EMPTY > +<!ATTLIST %ceiling.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> +<!ENTITY % carithop1or2ary + "%minus.qname;" > + +<!ELEMENT %minus.qname; EMPTY > +<!ATTLIST %minus.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % carithop2ary + "%quotient.qname; | %divide.qname; | %power.qname; | %rem.qname;" > + +<!ELEMENT %quotient.qname; EMPTY > +<!ATTLIST %quotient.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %divide.qname; EMPTY > +<!ATTLIST %divide.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %power.qname; EMPTY > +<!ATTLIST %power.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %rem.qname; EMPTY > +<!ATTLIST %rem.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % carithopnary + "%plus.qname; | %times.qname; | %max.qname; + | %min.qname; | %gcd.qname; | %lcm.qname;" > + +<!ELEMENT %plus.qname; EMPTY > +<!ATTLIST %plus.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %max.qname; EMPTY > +<!ATTLIST %max.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %min.qname; EMPTY > +<!ATTLIST %min.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %times.qname; EMPTY > +<!ATTLIST %times.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %gcd.qname; EMPTY > +<!ATTLIST %gcd.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %lcm.qname; EMPTY > +<!ATTLIST %lcm.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % carithoproot + "%root.qname;" > + +<!ELEMENT %root.qname; EMPTY > +<!ATTLIST %root.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clogicopquant + "%exists.qname; | %forall.qname;" > + +<!ELEMENT %exists.qname; EMPTY > +<!ATTLIST %exists.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %forall.qname; EMPTY > +<!ATTLIST %forall.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clogicopnary + "%and.qname; | %or.qname; | %xor.qname;" > + +<!ELEMENT %and.qname; EMPTY > +<!ATTLIST %and.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %or.qname; EMPTY > +<!ATTLIST %or.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %xor.qname; EMPTY > +<!ATTLIST %xor.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clogicop1ary + "%not.qname;" > + +<!ELEMENT %not.qname; EMPTY > +<!ATTLIST %not.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clogicop2ary + "%implies.qname;" > + +<!ELEMENT %implies.qname; EMPTY > +<!ATTLIST %implies.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % ccalcop + "%log.qname; | %int.qname; | %diff.qname; | %partialdiff.qname; | + %divergence.qname; | %grad.qname; | %curl.qname; | %laplacian.qname;" > + +<!ELEMENT %divergence.qname; EMPTY > +<!ATTLIST %divergence.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %grad.qname; EMPTY > +<!ATTLIST %grad.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %curl.qname; EMPTY > +<!ATTLIST %curl.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %laplacian.qname; EMPTY > +<!ATTLIST %laplacian.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %log.qname; EMPTY > +<!ATTLIST %log.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %int.qname; EMPTY > +<!ATTLIST %int.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %diff.qname; EMPTY > +<!ATTLIST %diff.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %partialdiff.qname; EMPTY > +<!ATTLIST %partialdiff.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % ccalcop1ary + "%ln.qname;" > + +<!ELEMENT %ln.qname; EMPTY > +<!ATTLIST %ln.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % csetop1ary + "%card.qname;" > + +<!ELEMENT %card.qname; EMPTY > +<!ATTLIST %card.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % csetop2ary + "%setdiff.qname;" > + +<!ELEMENT %setdiff.qname; EMPTY > +<!ATTLIST %setdiff.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % csetopnary + "%union.qname; | %intersect.qname; | %cartesianproduct.qname; " > + +<!ELEMENT %union.qname; EMPTY > +<!ATTLIST %union.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %intersect.qname; EMPTY > +<!ATTLIST %intersect.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %cartesianproduct.qname; EMPTY > +<!ATTLIST %cartesianproduct.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % cseqop + "%sum.qname; | %product.qname; | %limit.qname;" > + +<!ELEMENT %sum.qname; EMPTY > +<!ATTLIST %sum.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %product.qname; EMPTY > +<!ATTLIST %product.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %limit.qname; EMPTY > +<!ATTLIST %limit.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % ctrigop + "%sin.qname; | %cos.qname; | %tan.qname; + | %sec.qname; | %csc.qname; | %cot.qname; + | %sinh.qname; | %cosh.qname; | %tanh.qname; + | %sech.qname; | %csch.qname; | %coth.qname; + | %arcsin.qname; | %arccos.qname; | %arctan.qname; + | %arccosh.qname; | %arccot.qname; | %arccoth.qname; + | %arccsc.qname; | %arccsch.qname; | %arcsec.qname; + | %arcsech.qname; | %arcsinh.qname; | %arctanh.qname; + " > + +<!ELEMENT %sin.qname; EMPTY > +<!ATTLIST %sin.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %cos.qname; EMPTY > +<!ATTLIST %cos.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %tan.qname; EMPTY > +<!ATTLIST %tan.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %sec.qname; EMPTY > +<!ATTLIST %sec.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %csc.qname; EMPTY > +<!ATTLIST %csc.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %cot.qname; EMPTY > +<!ATTLIST %cot.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %sinh.qname; EMPTY > +<!ATTLIST %sinh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %cosh.qname; EMPTY > +<!ATTLIST %cosh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %tanh.qname; EMPTY > +<!ATTLIST %tanh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %sech.qname; EMPTY > +<!ATTLIST %sech.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %csch.qname; EMPTY > +<!ATTLIST %csch.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %coth.qname; EMPTY > +<!ATTLIST %coth.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arcsin.qname; EMPTY > +<!ATTLIST %arcsin.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arccos.qname; EMPTY > +<!ATTLIST %arccos.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arctan.qname; EMPTY > +<!ATTLIST %arctan.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arccosh.qname; EMPTY > +<!ATTLIST %arccosh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + + +<!ELEMENT %arccot.qname; EMPTY > +<!ATTLIST %arccot.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arccoth.qname; EMPTY > +<!ATTLIST %arccoth.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + + +<!ELEMENT %arccsc.qname; EMPTY > +<!ATTLIST %arccsc.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arccsch.qname; EMPTY > +<!ATTLIST %arccsch.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arcsec.qname; EMPTY > +<!ATTLIST %arcsec.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arcsech.qname; EMPTY > +<!ATTLIST %arcsech.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arcsinh.qname; EMPTY > +<!ATTLIST %arcsinh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arctanh.qname; EMPTY > +<!ATTLIST %arctanh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + + + +<!ENTITY % cstatopnary + "%mean.qname; | %sdev.qname; | + %variance.qname; | %median.qname; | + %mode.qname;" > + +<!ELEMENT %mean.qname; EMPTY > +<!ATTLIST %mean.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %sdev.qname; EMPTY > +<!ATTLIST %sdev.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %variance.qname; EMPTY > +<!ATTLIST %variance.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %median.qname; EMPTY > +<!ATTLIST %median.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %mode.qname; EMPTY > +<!ATTLIST %mode.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % cstatopmoment + "%moment.qname;" > + +<!ELEMENT %moment.qname; EMPTY > +<!ATTLIST %moment.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clalgop1ary + "%determinant.qname; | + %transpose.qname;" > + +<!ELEMENT %determinant.qname; EMPTY > +<!ATTLIST %determinant.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %transpose.qname; EMPTY > +<!ATTLIST %transpose.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clalgop2ary + "%vectorproduct.qname; + | %scalarproduct.qname; + | %outerproduct.qname;" > + +<!ELEMENT %vectorproduct.qname; EMPTY > +<!ATTLIST %vectorproduct.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %scalarproduct.qname; EMPTY > +<!ATTLIST %scalarproduct.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %outerproduct.qname; EMPTY > +<!ATTLIST %outerproduct.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clalgopnary + "%selector.qname;" > + +<!ELEMENT %selector.qname; EMPTY > +<!ATTLIST %selector.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!-- Content elements: relations --> + +<!ENTITY % cgenrel2ary + "%neq.qname; | %factorof.qname;" > + +<!ELEMENT %neq.qname; EMPTY > +<!ATTLIST %neq.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %factorof.qname; EMPTY > +<!ATTLIST %factorof.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % cgenrelnary + "%eq.qname; | %leq.qname; | %lt.qname; | %geq.qname; + | %gt.qname;| %equivalent.qname; | %approx.qname;" > + +<!ELEMENT %eq.qname; EMPTY > +<!ATTLIST %eq.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %equivalent.qname; EMPTY > +<!ATTLIST %equivalent.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %approx.qname; EMPTY > +<!ATTLIST %approx.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %gt.qname; EMPTY > +<!ATTLIST %gt.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %lt.qname; EMPTY > +<!ATTLIST %lt.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %geq.qname; EMPTY > +<!ATTLIST %geq.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %leq.qname; EMPTY > +<!ATTLIST %leq.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % csetrel2ary + "%in.qname; | %notin.qname; | %notsubset.qname; | %notprsubset.qname;" > + +<!ELEMENT %in.qname; EMPTY > +<!ATTLIST %in.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %notin.qname; EMPTY > +<!ATTLIST %notin.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %notsubset.qname; EMPTY > +<!ATTLIST %notsubset.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %notprsubset.qname; EMPTY > +<!ATTLIST %notprsubset.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % csetrelnary + "%subset.qname; | %prsubset.qname;" > + +<!ELEMENT %subset.qname; EMPTY > +<!ATTLIST %subset.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %prsubset.qname; EMPTY > +<!ATTLIST %prsubset.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % cseqrel2ary + "%tendsto.qname;" > + +<!ELEMENT %tendsto.qname; EMPTY > +<!ATTLIST %tendsto.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; + %att-type; +> + +<!-- Content elements: quantifiers --> + +<!ENTITY % cquantifier + "%lowlimit.qname; | %uplimit.qname; | %bvar.qname; + | %degree.qname; | %logbase.qname; + | %momentabout.qname; | %domainofapplication.qname; " > + +<!ATTLIST %lowlimit.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %uplimit.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %bvar.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %degree.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %logbase.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %momentabout.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %domainofapplication.qname; + %MATHML.Common.attrib; +> + +<!-- Operator groups --> + +<!ENTITY % cop1ary + "%cfuncop1ary; | %carithop1ary; | %clogicop1ary; | + %ccalcop1ary; | %ctrigop; | %clalgop1ary; | + %csetop1ary;" > + +<!ENTITY % cop2ary + "%carithop2ary; | %clogicop2ary;| %clalgop2ary; | %csetop2ary;" > + +<!ENTITY % copnary + "%cfuncopnary; | %carithopnary; | %clogicopnary; | + %csetopnary; | %cstatopnary; | %clalgopnary;" > + +<!ENTITY % copmisc + "%carithoproot; | %carithop1or2ary; | %ccalcop; | + %cseqop; | %cstatopmoment; | %clogicopquant;" > + +<!-- Relation groups --> + +<!ENTITY % crel2ary + "%cgenrel2ary; | %csetrel2ary; | %cseqrel2ary;" > + +<!ENTITY % crelnary + "%cgenrelnary; | %csetrelnary;" > + +<!-- Content constructs: all --> + +<!ENTITY % Content + "%ctoken; | %cspecial; | %cother; | %csemantics; | %c0ary; + | %cconstructor; | %cquantifier; | %cop1ary; | %cop2ary; + | %copnary; |%copmisc; | %crel2ary; | %crelnary;" > + +<!-- Content constructs for substitution in presentation structures --> + +<!ENTITY % ContInPres + "%ci.qname; |%csymbol.qname;| %cn.qname; | %c0ary; | + %apply.qname; | %fn.qname; | + %lambda.qname; | %reln.qname; | + %cconstructor; | + %semantics.qname; |%declare.qname;" > + +<!-- ............................................................. --> +<!-- Recursive definition for content of expressions. Include + presentation constructs at lowest level so presentation + layout schemata hold presentation or content elements. + Include content constructs at lowest level so content + elements hold PCDATA or presentation elements at leaf + level (for permitted substitutable elements in context) +--> + +<!ENTITY % ContentExpression + "(%Content; | %PresInCont;)*" > +<!ENTITY % PresExpression + "(%Presentation; | %ContInPres;)*" > +<!ENTITY % MathExpression + "(%PresInCont; | %ContInPres;)*" > + +<!-- PCDATA or MathML character elements --> +<!ENTITY % MathMLCharacters + "#PCDATA | %mglyph.qname; " > + +<!-- Content elements: tokens --> +<!-- (may contain embedded presentation constructs) --> + +<!ELEMENT %ci.qname; (%MathMLCharacters; | %PresInCont;)* > +<!ELEMENT %csymbol.qname; (%MathMLCharacters; | %PresInCont;)* > +<!ELEMENT %cn.qname; (%MathMLCharacters; | %sep.qname; | %PresInCont;)* > + +<!-- Content elements: special --> + +<!ELEMENT %apply.qname; (%ContentExpression;) > +<!ELEMENT %reln.qname; (%ContentExpression;) > +<!ELEMENT %lambda.qname; (%ContentExpression;) > + +<!-- Content elements: other --> + +<!ELEMENT %condition.qname; (%ContentExpression;) > +<!ELEMENT %declare.qname; (%ContentExpression;) > + +<!-- Content elements: semantics --> + +<!ELEMENT %semantics.qname; (%ContentExpression;) > +<!ENTITY % Annotation.content "( #PCDATA )" > +<!ELEMENT %annotation.qname; %Annotation.content; > + +<!ENTITY % Annotation-xml.content "ANY" > +<!ELEMENT %annotation-xml.qname; %Annotation-xml.content; > + +<!-- Content elements: constructors --> + +<!ELEMENT %interval.qname; (%ContentExpression;) > +<!ELEMENT %set.qname; (%ContentExpression;) > +<!ELEMENT %list.qname; (%ContentExpression;) > +<!ELEMENT %vector.qname; (%ContentExpression;) > +<!ELEMENT %matrix.qname; (%ContentExpression;) > +<!ELEMENT %matrixrow.qname; (%ContentExpression;) > + +<!ELEMENT %piecewise.qname; ((%piece.qname;)*, (%otherwise.qname;)? ) > +<!ELEMENT %piece.qname; (%ContentExpression;) > +<!ELEMENT %otherwise.qname; (%ContentExpression;) > + +<!-- Content elements: operator (user-defined) --> + +<!ELEMENT %fn.qname; (%ContentExpression;) > + +<!-- Content elements: quantifiers --> + +<!ELEMENT %lowlimit.qname; (%ContentExpression;) > +<!ELEMENT %uplimit.qname; (%ContentExpression;) > +<!ELEMENT %bvar.qname; (%ContentExpression;) > +<!ELEMENT %degree.qname; (%ContentExpression;) > +<!ELEMENT %logbase.qname; (%ContentExpression;) > +<!ELEMENT %momentabout.qname; (%ContentExpression;) > +<!ELEMENT %domainofapplication.qname; (%ContentExpression;) > + +<!-- ............................................................. --> +<!-- Presentation layout schemata contain tokens, + layout and content schemata. +--> + +<!ELEMENT %mstyle.qname; (%PresExpression;) > +<!ELEMENT %merror.qname; (%PresExpression;) > +<!ELEMENT %mphantom.qname; (%PresExpression;) > +<!ELEMENT %mrow.qname; (%PresExpression;) > +<!ELEMENT %mfrac.qname; (%PresExpression;) > +<!ELEMENT %msqrt.qname; (%PresExpression;) > +<!ELEMENT %menclose.qname; (%PresExpression;) > +<!ELEMENT %mroot.qname; (%PresExpression;) > +<!ELEMENT %msub.qname; (%PresExpression;) > +<!ELEMENT %msup.qname; (%PresExpression;) > +<!ELEMENT %msubsup.qname; (%PresExpression;) > +<!ELEMENT %mmultiscripts.qname; (%PresExpression;) > +<!ELEMENT %munder.qname; (%PresExpression;) > +<!ELEMENT %mover.qname; (%PresExpression;) > +<!ELEMENT %munderover.qname; (%PresExpression;) > +<!ELEMENT %mtable.qname; (%PresExpression;) > +<!ELEMENT %mtr.qname; (%PresExpression;) > +<!ELEMENT %mlabeledtr.qname; (%PresExpression;) > +<!ELEMENT %mtd.qname; (%PresExpression;) > +<!ELEMENT %maction.qname; (%PresExpression;) > +<!ELEMENT %mfenced.qname; (%PresExpression;) > +<!ELEMENT %mpadded.qname; (%PresExpression;) > + +<!-- Presentation elements contain PCDATA or malignmark constructs. --> + +<!ELEMENT %mi.qname; (%MathMLCharacters; | + %malignmark.qname;)* > +<!ELEMENT %mn.qname; (%MathMLCharacters; | + %malignmark.qname;)* > +<!ELEMENT %mo.qname; (%MathMLCharacters; | + %malignmark.qname;)* > +<!ELEMENT %mtext.qname; (%MathMLCharacters; | + %malignmark.qname;)* > +<!ELEMENT %ms.qname; (%MathMLCharacters; | + %malignmark.qname;)* > + +<!-- Browser interface definition ............................... --> + +<!-- Attributes for top-level element "math" --> + +<!ENTITY % att-macros + "macros CDATA #IMPLIED" > +<!ENTITY % att-mode + "mode CDATA #IMPLIED" > +<!ENTITY % att-display + "display CDATA #IMPLIED" > + +<!ENTITY % att-topinfo + "%MATHML.Common.attrib; + %att-macros; + %att-mode; + %att-display;" > + +<!-- Attributes for browser interface element --> + +<!ENTITY % att-baseline + "baseline CDATA #IMPLIED" > +<!ENTITY % att-overflow + "overflow ( scroll | elide | truncate | scale ) 'scroll'" > +<!ENTITY % att-altimg + "altimg CDATA #IMPLIED" > +<!ENTITY % att-alttext + "alttext CDATA #IMPLIED" > + +<!ENTITY % att-browif + "%att-type; + %att-name; + %att-height; + %att-width; + %att-baseline; + %att-overflow; + %att-altimg; + %att-alttext;" > + +<!-- ............................................................. --> +<!-- The top-level element "math" contains MathML encoded + mathematics. The "math" element has the browser info + attributes iff it is also the browser interface element. +--> + +<!ELEMENT %math.qname; (%MathExpression;) > + +<!ATTLIST %math.qname; + %att-topinfo; + %att-browif; > + +<!-- MathML Character Entities .............................................. --> +<!ENTITY % mathml-charent.module "INCLUDE" > +<![%mathml-charent.module;[ +<!-- Entity sets from ISO Technical Report 9573-13 ..... --> + +<!ENTITY % ent-isoamsa + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Arrow Relations for MathML 2.0//EN" + "isoamsa.ent" > + +<!-- + File isoamsa.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY angzarr "⍼" ><!--angle with down zig-zag arrow --> +<!ENTITY cirmid "⫯" ><!--circle, mid below --> +<!ENTITY cudarrl "⤸" ><!--left, curved, down arrow --> +<!ENTITY cudarrr "⤵" ><!--right, curved, down arrow --> +<!ENTITY cularr "↶" ><!--/curvearrowleft A: left curved arrow --> +<!ENTITY cularrp "⤽" ><!--curved left arrow with plus --> +<!ENTITY curarr "↷" ><!--/curvearrowright A: rt curved arrow --> +<!ENTITY curarrm "⤼" ><!--curved right arrow with minus --> +<!ENTITY dArr "⇓" ><!--/Downarrow A: down dbl arrow --> +<!ENTITY Darr "↡" ><!--down two-headed arrow --> +<!ENTITY ddarr "⇊" ><!--/downdownarrows A: two down arrows --> +<!ENTITY DDotrahd "⤑" ><!--right arrow with dotted stem --> +<!ENTITY dfisht "⥿" ><!--down fish tail --> +<!ENTITY dHar "⥥" ><!--down harpoon-left, down harpoon-right --> +<!ENTITY dharl "⇃" ><!--/downharpoonleft A: dn harpoon-left --> +<!ENTITY dharr "⇂" ><!--/downharpoonright A: down harpoon-rt --> +<!ENTITY duarr "⇵" ><!--down arrow, up arrow --> +<!ENTITY duhar "⥯" ><!--down harp, up harp --> +<!ENTITY dzigrarr "" ><!--right long zig-zag arrow --> +<!ENTITY erarr "⥱" ><!--equal, right arrow below --> +<!ENTITY harr "↔" ><!--/leftrightarrow A: l&r arrow --> +<!ENTITY hArr "⇔" ><!--/Leftrightarrow A: l&r dbl arrow --> +<!ENTITY harrcir "⥈" ><!--left and right arrow with a circle --> +<!ENTITY harrw "↭" ><!--/leftrightsquigarrow A: l&r arr-wavy --> +<!ENTITY hoarr "⇿" ><!--horizontal open arrow --> +<!ENTITY imof "⊷" ><!--image of --> +<!ENTITY lAarr "⇚" ><!--/Lleftarrow A: left triple arrow --> +<!ENTITY Larr "↞" ><!--/twoheadleftarrow A: --> +<!ENTITY larrbfs "⤟" ><!--left arrow-bar, filled square --> +<!ENTITY larrfs "⤝" ><!--left arrow, filled square --> +<!ENTITY larrhk "↩" ><!--/hookleftarrow A: left arrow-hooked --> +<!ENTITY larrlp "↫" ><!--/looparrowleft A: left arrow-looped --> +<!ENTITY larrpl "⤹" ><!--left arrow, plus --> +<!ENTITY larrsim "⥳" ><!--left arrow, similar --> +<!ENTITY larrtl "↢" ><!--/leftarrowtail A: left arrow-tailed --> +<!ENTITY latail "⤙" ><!--left arrow-tail --> +<!ENTITY lAtail "⤛" ><!--left double arrow-tail --> +<!ENTITY lbarr "⤌" ><!--left broken arrow --> +<!ENTITY lBarr "⤎" ><!--left doubly broken arrow --> +<!ENTITY ldca "⤶" ><!--left down curved arrow --> +<!ENTITY ldrdhar "⥧" ><!--left harpoon-down over right harpoon-down --> +<!ENTITY ldrushar "⥋" ><!--left-down-right-up harpoon --> +<!ENTITY ldsh "↲" ><!--left down angled arrow --> +<!ENTITY lfisht "⥼" ><!--left fish tail --> +<!ENTITY lHar "⥢" ><!--left harpoon-up over left harpoon-down --> +<!ENTITY lhard "↽" ><!--/leftharpoondown A: l harpoon-down --> +<!ENTITY lharu "↼" ><!--/leftharpoonup A: left harpoon-up --> +<!ENTITY lharul "⥪" ><!--left harpoon-up over long dash --> +<!ENTITY llarr "⇇" ><!--/leftleftarrows A: two left arrows --> +<!ENTITY llhard "⥫" ><!--left harpoon-down below long dash --> +<!ENTITY loarr "⇽" ><!--left open arrow --> +<!ENTITY lrarr "⇆" ><!--/leftrightarrows A: l arr over r arr --> +<!ENTITY lrhar "⇋" ><!--/leftrightharpoons A: l harp over r --> +<!ENTITY lrhard "⥭" ><!--right harpoon-down below long dash --> +<!ENTITY lsh "↰" ><!--/Lsh A: --> +<!ENTITY lurdshar "⥊" ><!--left-up-right-down harpoon --> +<!ENTITY luruhar "⥦" ><!--left harpoon-up over right harpoon-up --> +<!ENTITY map "↦" ><!--/mapsto A: --> +<!ENTITY Map "⤅" ><!--twoheaded mapsto --> +<!ENTITY midcir "⫰" ><!--mid, circle below --> +<!ENTITY mumap "⊸" ><!--/multimap A: --> +<!ENTITY nearhk "⤤" ><!--NE arrow-hooked --> +<!ENTITY nearr "↗" ><!--/nearrow A: NE pointing arrow --> +<!ENTITY neArr "⇗" ><!--NE pointing dbl arrow --> +<!ENTITY nesear "⤨" ><!--/toea A: NE & SE arrows --> +<!ENTITY nharr "↮" ><!--/nleftrightarrow A: not l&r arrow --> +<!ENTITY nhArr "⇎" ><!--/nLeftrightarrow A: not l&r dbl arr --> +<!ENTITY nlarr "↚" ><!--/nleftarrow A: not left arrow --> +<!ENTITY nlArr "⇍" ><!--/nLeftarrow A: not implied by --> +<!ENTITY nrarr "↛" ><!--/nrightarrow A: not right arrow --> +<!ENTITY nrArr "⇏" ><!--/nRightarrow A: not implies --> +<!ENTITY nrarrc "⤳̸" ><!--not right arrow-curved --> +<!ENTITY nrarrw "↝̸" ><!--not right arrow-wavy --> +<!ENTITY nvHarr "⇎" ><!--not, vert, left and right double arrow --> +<!ENTITY nvlArr "⇍" ><!--not, vert, left double arrow --> +<!ENTITY nvrArr "⇏" ><!--not, vert, right double arrow --> +<!ENTITY nwarhk "⤣" ><!--NW arrow-hooked --> +<!ENTITY nwarr "↖" ><!--/nwarrow A: NW pointing arrow --> +<!ENTITY nwArr "⇖" ><!--NW pointing dbl arrow --> +<!ENTITY nwnear "⤧" ><!--NW & NE arrows --> +<!ENTITY olarr "↺" ><!--/circlearrowleft A: l arr in circle --> +<!ENTITY orarr "↻" ><!--/circlearrowright A: r arr in circle --> +<!ENTITY origof "⊶" ><!--original of --> +<!ENTITY rAarr "⇛" ><!--/Rrightarrow A: right triple arrow --> +<!ENTITY Rarr "↠" ><!--/twoheadrightarrow A: --> +<!ENTITY rarrap "⥵" ><!--approximate, right arrow above --> +<!ENTITY rarrbfs "⤠" ><!--right arrow-bar, filled square --> +<!ENTITY rarrc "⤳" ><!--right arrow-curved --> +<!ENTITY rarrfs "⤞" ><!--right arrow, filled square --> +<!ENTITY rarrhk "↪" ><!--/hookrightarrow A: rt arrow-hooked --> +<!ENTITY rarrlp "↬" ><!--/looparrowright A: rt arrow-looped --> +<!ENTITY rarrpl "⥅" ><!--right arrow, plus --> +<!ENTITY rarrsim "⥴" ><!--right arrow, similar --> +<!ENTITY rarrtl "↣" ><!--/rightarrowtail A: rt arrow-tailed --> +<!ENTITY Rarrtl "⤖" ><!--right two-headed arrow with tail --> +<!ENTITY rarrw "↝" ><!--/rightsquigarrow A: rt arrow-wavy --> +<!ENTITY ratail "↣" ><!--right arrow-tail --> +<!ENTITY rAtail "⤜" ><!--right double arrow-tail --> +<!ENTITY rbarr "⤍" ><!--/bkarow A: right broken arrow --> +<!ENTITY rBarr "⤏" ><!--/dbkarow A: right doubly broken arrow --> +<!ENTITY RBarr "⤐" ><!--/drbkarow A: twoheaded right broken arrow --> +<!ENTITY rdca "⤷" ><!--right down curved arrow --> +<!ENTITY rdldhar "⥩" ><!--right harpoon-down over left harpoon-down --> +<!ENTITY rdsh "↳" ><!--right down angled arrow --> +<!ENTITY rfisht "⥽" ><!--right fish tail --> +<!ENTITY rHar "⥤" ><!--right harpoon-up over right harpoon-down --> +<!ENTITY rhard "⇁" ><!--/rightharpoondown A: rt harpoon-down --> +<!ENTITY rharu "⇀" ><!--/rightharpoonup A: rt harpoon-up --> +<!ENTITY rharul "⥬" ><!--right harpoon-up over long dash --> +<!ENTITY rlarr "⇄" ><!--/rightleftarrows A: r arr over l arr --> +<!ENTITY rlhar "⇌" ><!--/rightleftharpoons A: r harp over l --> +<!ENTITY roarr "⇾" ><!--right open arrow --> +<!ENTITY rrarr "⇉" ><!--/rightrightarrows A: two rt arrows --> +<!ENTITY rsh "↱" ><!--/Rsh A: --> +<!ENTITY ruluhar "⥨" ><!--right harpoon-up over left harpoon-up --> +<!ENTITY searhk "⤥" ><!--/hksearow A: SE arrow-hooken --> +<!ENTITY searr "↘" ><!--/searrow A: SE pointing arrow --> +<!ENTITY seArr "⇘" ><!--SE pointing dbl arrow --> +<!ENTITY seswar "⤩" ><!--/tosa A: SE & SW arrows --> +<!ENTITY simrarr "⥲" ><!--similar, right arrow below --> +<!ENTITY slarr "←︀" ><!--short left arrow --> +<!ENTITY srarr "→︀" ><!--short right arrow --> +<!ENTITY swarhk "⤦" ><!--/hkswarow A: SW arrow-hooked --> +<!ENTITY swarr "↙" ><!--/swarrow A: SW pointing arrow --> +<!ENTITY swArr "⇙" ><!--SW pointing dbl arrow --> +<!ENTITY swnwar "⤪" ><!--SW & NW arrows --> +<!ENTITY uArr "⇑" ><!--/Uparrow A: up dbl arrow --> +<!ENTITY Uarr "↟" ><!--up two-headed arrow --> +<!ENTITY Uarrocir "⥉" ><!--up two-headed arrow above circle --> +<!ENTITY udarr "⇅" ><!--up arrow, down arrow --> +<!ENTITY udhar "⥮" ><!--up harp, down harp --> +<!ENTITY ufisht "⥾" ><!--up fish tail --> +<!ENTITY uHar "⥣" ><!--up harpoon-left, up harpoon-right --> +<!ENTITY uharl "↿" ><!--/upharpoonleft A: up harpoon-left --> +<!ENTITY uharr "↾" ><!--/upharpoonright /restriction A: up harp-r --> +<!ENTITY uuarr "⇈" ><!--/upuparrows A: two up arrows --> +<!ENTITY varr "↕" ><!--/updownarrow A: up&down arrow --> +<!ENTITY vArr "⇕" ><!--/Updownarrow A: up&down dbl arrow --> +<!ENTITY xharr "" ><!--/longleftrightarrow A: long l&r arr --> +<!ENTITY xhArr "" ><!--/Longleftrightarrow A: long l&r dbl arr --> +<!ENTITY xlarr "" ><!--/longleftarrow A: long left arrow --> +<!ENTITY xlArr "" ><!--/Longleftarrow A: long l dbl arrow --> +<!ENTITY xmap "" ><!--/longmapsto A: --> +<!ENTITY xrarr "" ><!--/longrightarrow A: long right arrow --> +<!ENTITY xrArr "" ><!--/Longrightarrow A: long rt dbl arr --> +<!ENTITY zigrarr "⇝" ><!--right zig-zag arrow --> + + +<!ENTITY % ent-isoamsb + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Binary Operators for MathML 2.0//EN" + "isoamsb.ent" > + +<!-- + File isoamsb.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY ac "⤏" ><!--most positive --> +<!ENTITY acE "⧛" ><!--most positive, two lines below --> +<!ENTITY amalg "⨿" ><!--/amalg B: amalgamation or coproduct --> +<!ENTITY barvee "⊽" ><!--bar, vee --> +<!ENTITY barwed "⊼" ><!--/barwedge B: logical and, bar above --> +<!ENTITY Barwed "⌆" ><!--/doublebarwedge B: log and, dbl bar above --> +<!ENTITY bsolb "⧅" ><!--reverse solidus in square --> +<!ENTITY Cap "⋒" ><!--/Cap /doublecap B: dbl intersection --> +<!ENTITY capand "⩄" ><!--intersection, and --> +<!ENTITY capbrcup "⩉" ><!--intersection, bar, union --> +<!ENTITY capcap "⩋" ><!--intersection, intersection, joined --> +<!ENTITY capcup "⩇" ><!--intersection above union --> +<!ENTITY capdot "⩀" ><!--intersection, with dot --> +<!ENTITY caps "∩︀" ><!--intersection, serifs --> +<!ENTITY ccaps "⩍" ><!--closed intersection, serifs --> +<!ENTITY ccups "⩌" ><!--closed union, serifs --> +<!ENTITY ccupssm "⩐" ><!--closed union, serifs, smash product --> +<!ENTITY coprod "∐" ><!--/coprod L: coproduct operator --> +<!ENTITY Cup "⋓" ><!--/Cup /doublecup B: dbl union --> +<!ENTITY cupbrcap "⩈" ><!--union, bar, intersection --> +<!ENTITY cupcap "⩆" ><!--union above intersection --> +<!ENTITY cupcup "⩊" ><!--union, union, joined --> +<!ENTITY cupdot "⊍" ><!--union, with dot --> +<!ENTITY cupor "⩅" ><!--union, or --> +<!ENTITY cups "∪︀" ><!--union, serifs --> +<!ENTITY cuvee "⋎" ><!--/curlyvee B: curly logical or --> +<!ENTITY cuwed "⋏" ><!--/curlywedge B: curly logical and --> +<!ENTITY dagger "†" ><!--/dagger B: dagger relation --> +<!ENTITY Dagger "‡" ><!--/ddagger B: double dagger relation --> +<!ENTITY diam "⋄" ><!--/diamond B: open diamond --> +<!ENTITY divonx "⋇" ><!--/divideontimes B: division on times --> +<!ENTITY eplus "⩱" ><!--equal, plus --> +<!ENTITY hercon "⊹" ><!--hermitian conjugate matrix --> +<!ENTITY intcal "⊺" ><!--/intercal B: intercal --> +<!ENTITY iprod "⨼" ><!--/intprod --> +<!ENTITY loplus "⨭" ><!--plus sign in left half circle --> +<!ENTITY lotimes "⨴" ><!--multiply sign in left half circle --> +<!ENTITY lthree "⋋" ><!--/leftthreetimes B: --> +<!ENTITY ltimes "⋉" ><!--/ltimes B: times sign, left closed --> +<!ENTITY midast "*" ><!--/ast B: asterisk --> +<!ENTITY minusb "⊟" ><!--/boxminus B: minus sign in box --> +<!ENTITY minusd "∸" ><!--/dotminus B: minus sign, dot above --> +<!ENTITY minusdu "⨪" ><!--minus sign, dot below --> +<!ENTITY ncap "⩃" ><!--bar, intersection --> +<!ENTITY ncup "⩂" ><!--bar, union --> +<!ENTITY oast "⊛" ><!--/circledast B: asterisk in circle --> +<!ENTITY ocir "⊚" ><!--/circledcirc B: small circle in circle --> +<!ENTITY odash "⊝" ><!--/circleddash B: hyphen in circle --> +<!ENTITY odiv "⨸" ><!--divide in circle --> +<!ENTITY odot "⊙" ><!--/odot B: middle dot in circle --> +<!ENTITY odsold "⦼" ><!--dot, solidus, dot in circle --> +<!ENTITY ofcir "⦿" ><!--filled circle in circle --> +<!ENTITY ogt "⧁" ><!--greater-than in circle --> +<!ENTITY ohbar "⦵" ><!--circle with horizontal bar --> +<!ENTITY olcir "⦾" ><!--large circle in circle --> +<!ENTITY olt "⧀" ><!--less-than in circle --> +<!ENTITY omid "⦶" ><!--vertical bar in circle --> +<!ENTITY ominus "⊖" ><!--/ominus B: minus sign in circle --> +<!ENTITY opar "⦷" ><!--parallel in circle --> +<!ENTITY operp "⦹" ><!--perpendicular in circle --> +<!ENTITY oplus "⊕" ><!--/oplus B: plus sign in circle --> +<!ENTITY osol "⊘" ><!--/oslash B: solidus in circle --> +<!ENTITY otimes "⊗" ><!--/otimes B: multiply sign in circle --> +<!ENTITY Otimes "⨷" ><!--multiply sign in double circle --> +<!ENTITY otimesas "⨶" ><!--multiply sign in circle, circumflex accent --> +<!ENTITY ovbar "⌽" ><!--circle with vertical bar --> +<!ENTITY plusacir "⨣" ><!--plus, circumflex accent above --> +<!ENTITY plusb "⊞" ><!--/boxplus B: plus sign in box --> +<!ENTITY pluscir "⨢" ><!--plus, small circle above --> +<!ENTITY plusdo "∔" ><!--/dotplus B: plus sign, dot above --> +<!ENTITY plusdu "⨥" ><!--plus sign, dot below --> +<!ENTITY pluse "⩲" ><!--plus, equals --> +<!ENTITY plussim "⨦" ><!--plus, similar below --> +<!ENTITY plustwo "⨧" ><!--plus, two; Nim-addition --> +<!ENTITY prod "∏" ><!--/prod L: product operator --> +<!ENTITY race "⧚" ><!--reverse most positive, line below --> +<!ENTITY roplus "⨮" ><!--plus sign in right half circle --> +<!ENTITY rotimes "⨵" ><!--multiply sign in right half circle --> +<!ENTITY rthree "⋌" ><!--/rightthreetimes B: --> +<!ENTITY rtimes "⋊" ><!--/rtimes B: times sign, right closed --> +<!ENTITY sdot "⋅" ><!--/cdot B: small middle dot --> +<!ENTITY sdotb "⊡" ><!--/dotsquare /boxdot B: small dot in box --> +<!ENTITY setmn "∖" ><!--/setminus B: reverse solidus --> +<!ENTITY simplus "⨤" ><!--plus, similar above --> +<!ENTITY smashp "⨳" ><!--smash product --> +<!ENTITY solb "⧄" ><!--solidus in square --> +<!ENTITY sqcap "⊓" ><!--/sqcap B: square intersection --> +<!ENTITY sqcaps "⊓︀" ><!--square intersection, serifs --> +<!ENTITY sqcup "⊔" ><!--/sqcup B: square union --> +<!ENTITY sqcups "⊔︀" ><!--square union, serifs --> +<!ENTITY ssetmn "∖︀" ><!--/smallsetminus B: sm reverse solidus --> +<!ENTITY sstarf "⋆" ><!--/star B: small star, filled --> +<!ENTITY subdot "⪽" ><!--subset, with dot --> +<!ENTITY sum "∑" ><!--/sum L: summation operator --> +<!ENTITY supdot "⪾" ><!--superset, with dot --> +<!ENTITY timesb "⊠" ><!--/boxtimes B: multiply sign in box --> +<!ENTITY timesbar "⨱" ><!--multiply sign, bar below --> +<!ENTITY timesd "⨰" ><!--times, dot --> +<!ENTITY tridot "◬" ><!--dot in triangle --> +<!ENTITY triminus "⨺" ><!--minus in triangle --> +<!ENTITY triplus "⨹" ><!--plus in triangle --> +<!ENTITY trisb "⧍" ><!--triangle, serifs at bottom --> +<!ENTITY tritime "⨻" ><!--multiply in triangle --> +<!ENTITY uplus "⊎" ><!--/uplus B: plus sign in union --> +<!ENTITY veebar "⊻" ><!--/veebar B: logical or, bar below --> +<!ENTITY wedbar "⩟" ><!--wedge, bar below --> +<!ENTITY wreath "≀" ><!--/wr B: wreath product --> +<!ENTITY xcap "⋂" ><!--/bigcap L: intersection operator --> +<!ENTITY xcirc "◯" ><!--/bigcirc B: large circle --> +<!ENTITY xcup "⋃" ><!--/bigcup L: union operator --> +<!ENTITY xdtri "▽" ><!--/bigtriangledown B: big dn tri, open --> +<!ENTITY xodot "⊙" ><!--/bigodot L: circle dot operator --> +<!ENTITY xoplus "⊕" ><!--/bigoplus L: circle plus operator --> +<!ENTITY xotime "⊗" ><!--/bigotimes L: circle times operator --> +<!ENTITY xsqcup "⊔" ><!--/bigsqcup L: square union operator --> +<!ENTITY xuplus "⊎" ><!--/biguplus L: --> +<!ENTITY xutri "△" ><!--/bigtriangleup B: big up tri, open --> +<!ENTITY xvee "⋁" ><!--/bigvee L: logical and operator --> +<!ENTITY xwedge "⋀" ><!--/bigwedge L: logical or operator --> + + +<!ENTITY % ent-isoamsc + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Delimiters for MathML 2.0//EN" + "isoamsc.ent" > + +<!-- + File isoamsc.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY dlcorn "⌞" ><!--/llcorner O: lower left corner --> +<!ENTITY drcorn "⌟" ><!--/lrcorner C: lower right corner --> +<!ENTITY gtlPar "⦕" ><!--dbl left parenthesis, greater --> +<!ENTITY langd "⦑" ><!--left angle, dot --> +<!ENTITY lbrke "⦋" ><!--left bracket, equal --> +<!ENTITY lbrksld "⦏" ><!--left bracket, solidus bottom corner --> +<!ENTITY lbrkslu "⦍" ><!--left bracket, solidus top corner --> +<!ENTITY lceil "⌈" ><!--/lceil O: left ceiling --> +<!ENTITY lfloor "⌊" ><!--/lfloor O: left floor --> +<!ENTITY lmoust "⎰" ><!--/lmoustache --> +<!ENTITY lparlt "⦓" ><!--O: left parenthesis, lt --> +<!ENTITY ltrPar "⦖" ><!--dbl right parenthesis, less --> +<!ENTITY rangd "⦒" ><!--right angle, dot --> +<!ENTITY rbrke "⦌" ><!--right bracket, equal --> +<!ENTITY rbrksld "⦎" ><!--right bracket, solidus bottom corner --> +<!ENTITY rbrkslu "⦐" ><!--right bracket, solidus top corner --> +<!ENTITY rceil "⌉" ><!--/rceil C: right ceiling --> +<!ENTITY rfloor "⌋" ><!--/rfloor C: right floor --> +<!ENTITY rmoust "⎱" ><!--/rmoustache --> +<!ENTITY rpargt "⦔" ><!--C: right paren, gt --> +<!ENTITY ulcorn "⌜" ><!--/ulcorner O: upper left corner --> +<!ENTITY urcorn "⌝" ><!--/urcorner C: upper right corner --> + + +<!ENTITY % ent-isoamsn + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Negated Relations for MathML 2.0//EN" + "isoamsn.ent" > + +<!-- + File isoamsn.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY gnap "⪊" ><!--/gnapprox N: greater, not approximate --> +<!ENTITY gne "≩" ><!--/gneq N: greater, not equals --> +<!ENTITY gnE "≩" ><!--/gneqq N: greater, not dbl equals --> +<!ENTITY gnsim "⋧" ><!--/gnsim N: greater, not similar --> +<!ENTITY gvnE "≩︀" ><!--/gvertneqq N: gt, vert, not dbl eq --> +<!ENTITY lnap "⪉" ><!--/lnapprox N: less, not approximate --> +<!ENTITY lne "≨" ><!--/lneq N: less, not equals --> +<!ENTITY lnE "≨" ><!--/lneqq N: less, not double equals --> +<!ENTITY lnsim "⋦" ><!--/lnsim N: less, not similar --> +<!ENTITY lvnE "≨︀" ><!--/lvertneqq N: less, vert, not dbl eq --> +<!ENTITY nap "≉" ><!--/napprox N: not approximate --> +<!ENTITY napE "⩰̸" ><!--not approximately equal or equal to --> +<!ENTITY napid "≋̸" ><!--not approximately identical to --> +<!ENTITY ncong "≇" ><!--/ncong N: not congruent with --> +<!ENTITY ncongdot "⩭̸" ><!--not congruent, dot --> +<!ENTITY nequiv "≢" ><!--/nequiv N: not identical with --> +<!ENTITY nge "≱⃥" ><!--/ngeq N: not greater-than-or-equal --> +<!ENTITY ngE "≱" ><!--/ngeqq N: not greater, dbl equals --> +<!ENTITY nges "≱" ><!--/ngeqslant N: not gt-or-eq, slanted --> +<!ENTITY nGg "⋙̸" ><!--not triple greater than --> +<!ENTITY ngsim "≵" ><!--not greater, similar --> +<!ENTITY ngt "≯" ><!--/ngtr N: not greater-than --> +<!ENTITY nGt "≫̸" ><!--not, vert, much greater than --> +<!ENTITY nGtv "≫̸︀" ><!--not much greater than, variant --> +<!ENTITY nle "≰⃥" ><!--/nleq N: not less-than-or-equal --> +<!ENTITY nlE "≰" ><!--/nleqq N: not less, dbl equals --> +<!ENTITY nles "≰" ><!--/nleqslant N: not less-or-eq, slant --> +<!ENTITY nLl "⋘̸" ><!--not triple less than --> +<!ENTITY nlsim "≴" ><!--not less, similar --> +<!ENTITY nlt "≮" ><!--/nless N: not less-than --> +<!ENTITY nLt "≪̸" ><!--not, vert, much less than --> +<!ENTITY nltri "⋪" ><!--/ntriangleleft N: not left triangle --> +<!ENTITY nltrie "⋬" ><!--/ntrianglelefteq N: not l tri, eq --> +<!ENTITY nLtv "≪̸︀" ><!--not much less than, variant --> +<!ENTITY nmid "∤" ><!--/nmid --> +<!ENTITY npar "∦" ><!--/nparallel N: not parallel --> +<!ENTITY npr "⊀" ><!--/nprec N: not precedes --> +<!ENTITY nprcue "⋠" ><!--not curly precedes, eq --> +<!ENTITY npre "⪯̸" ><!--/npreceq N: not precedes, equals --> +<!ENTITY nrtri "⋫" ><!--/ntriangleright N: not rt triangle --> +<!ENTITY nrtrie "⋭" ><!--/ntrianglerighteq N: not r tri, eq --> +<!ENTITY nsc "⊁" ><!--/nsucc N: not succeeds --> +<!ENTITY nsccue "⋡" ><!--not succeeds, curly eq --> +<!ENTITY nsce "⪰̸" ><!--/nsucceq N: not succeeds, equals --> +<!ENTITY nsim "≁" ><!--/nsim N: not similar --> +<!ENTITY nsime "≄" ><!--/nsimeq N: not similar, equals --> +<!ENTITY nsmid "∤︀" ><!--/nshortmid --> +<!ENTITY nspar "∦︀" ><!--/nshortparallel N: not short par --> +<!ENTITY nsqsube "⋢" ><!--not, square subset, equals --> +<!ENTITY nsqsupe "⋣" ><!--not, square superset, equals --> +<!ENTITY nsub "⊄" ><!--not subset --> +<!ENTITY nsube "⊈" ><!--/nsubseteq N: not subset, equals --> +<!ENTITY nsubE "⊈" ><!--/nsubseteqq N: not subset, dbl eq --> +<!ENTITY nsup "⊅" ><!--not superset --> +<!ENTITY nsupe "⊉" ><!--/nsupseteq N: not superset, equals --> +<!ENTITY nsupE "⊉" ><!--/nsupseteqq N: not superset, dbl eq --> +<!ENTITY ntgl "≹" ><!--not greater, less --> +<!ENTITY ntlg "≸" ><!--not less, greater --> +<!ENTITY nvap "≉̸" ><!--not, vert, approximate --> +<!ENTITY nvdash "⊬" ><!--/nvdash N: not vertical, dash --> +<!ENTITY nvDash "⊭" ><!--/nvDash N: not vertical, dbl dash --> +<!ENTITY nVdash "⊮" ><!--/nVdash N: not dbl vertical, dash --> +<!ENTITY nVDash "⊯" ><!--/nVDash N: not dbl vert, dbl dash --> +<!ENTITY nvge "≱" ><!--not, vert, greater-than-or-equal --> +<!ENTITY nvgt "≯" ><!--not, vert, greater-than --> +<!ENTITY nvle "≰" ><!--not, vert, less-than-or-equal --> +<!ENTITY nvlt "≮" ><!--not, vert, less-than --> +<!ENTITY nvltrie "⋬̸" ><!--not, vert, left triangle, equals --> +<!ENTITY nvrtrie "⋭̸" ><!--not, vert, right triangle, equals --> +<!ENTITY nvsim "≁̸" ><!--not, vert, similar --> +<!ENTITY parsim "⫳" ><!--parallel, similar --> +<!ENTITY prnap "⋨" ><!--/precnapprox N: precedes, not approx --> +<!ENTITY prnE "⪵" ><!--/precneqq N: precedes, not dbl eq --> +<!ENTITY prnsim "⋨" ><!--/precnsim N: precedes, not similar --> +<!ENTITY rnmid "⫮" ><!--reverse /nmid --> +<!ENTITY scnap "⋩" ><!--/succnapprox N: succeeds, not approx --> +<!ENTITY scnE "⪶" ><!--/succneqq N: succeeds, not dbl eq --> +<!ENTITY scnsim "⋩" ><!--/succnsim N: succeeds, not similar --> +<!ENTITY simne "≆" ><!--similar, not equals --> +<!ENTITY solbar "⌿" ><!--solidus, bar through --> +<!ENTITY subne "⊊" ><!--/subsetneq N: subset, not equals --> +<!ENTITY subnE "⊊" ><!--/subsetneqq N: subset, not dbl eq --> +<!ENTITY supne "⊋" ><!--/supsetneq N: superset, not equals --> +<!ENTITY supnE "⊋" ><!--/supsetneqq N: superset, not dbl eq --> +<!ENTITY vnsub "⊄" ><!--/nsubset N: not subset, var --> +<!ENTITY vnsup "⊅" ><!--/nsupset N: not superset, var --> +<!ENTITY vsubne "⊊︀" ><!--/varsubsetneq N: subset, not eq, var --> +<!ENTITY vsubnE "⊊︀" ><!--/varsubsetneqq N: subset not dbl eq, var --> +<!ENTITY vsupne "⊋︀" ><!--/varsupsetneq N: superset, not eq, var --> +<!ENTITY vsupnE "⊋︀" ><!--/varsupsetneqq N: super not dbl eq, var --> + + +<!ENTITY % ent-isoamso + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Ordinary for MathML 2.0//EN" + "isoamso.ent" > + +<!-- + File isoamso.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY ang "∠" ><!--/angle - angle --> +<!ENTITY ange "⦤" ><!--angle, equal --> +<!ENTITY angmsd "∡" ><!--/measuredangle - angle-measured --> +<!ENTITY angmsdaa "⦨" ><!--angle-measured, arrow, up, right --> +<!ENTITY angmsdab "⦩" ><!--angle-measured, arrow, up, left --> +<!ENTITY angmsdac "⦪" ><!--angle-measured, arrow, down, right --> +<!ENTITY angmsdad "⦫" ><!--angle-measured, arrow, down, left --> +<!ENTITY angmsdae "⦬" ><!--angle-measured, arrow, right, up --> +<!ENTITY angmsdaf "⦭" ><!--angle-measured, arrow, left, up --> +<!ENTITY angmsdag "⦮" ><!--angle-measured, arrow, right, down --> +<!ENTITY angmsdah "⦯" ><!--angle-measured, arrow, left, down --> +<!ENTITY angrtvb "⦝︀" ><!--right angle-measured --> +<!ENTITY angrtvbd "⦝" ><!--right angle-measured, dot --> +<!ENTITY bbrk "⎵" ><!--bottom square bracket --> +<!ENTITY bemptyv "⦰" ><!--reversed circle, slash --> +<!ENTITY beth "ℶ" ><!--/beth - beth, Hebrew --> +<!ENTITY boxbox "⧉" ><!--two joined squares --> +<!ENTITY bprime "‵" ><!--/backprime - reverse prime --> +<!ENTITY bsemi "⁏" ><!--reverse semi-colon --> +<!ENTITY cemptyv "⦲" ><!--circle, slash, small circle above --> +<!ENTITY cirE "⧃" ><!--circle, two horizontal stroked to the right --> +<!ENTITY cirscir "⧂" ><!--circle, small circle to the right --> +<!ENTITY comp "∁" ><!--/complement - complement sign --> +<!ENTITY daleth "ℸ" ><!--/daleth - daleth, Hebrew --> +<!ENTITY demptyv "⦱" ><!--circle, slash, bar above --> +<!ENTITY ell "ℓ" ><!--/ell - cursive small l --> +<!ENTITY empty "∅︀" ><!--/emptyset - zero, slash --> +<!ENTITY emptyv "∅" ><!--/varnothing - circle, slash --> +<!ENTITY gimel "ℷ" ><!--/gimel - gimel, Hebrew --> +<!ENTITY iiota "℩" ><!--inverted iota --> +<!ENTITY image "ℑ" ><!--/Im - imaginary --> +<!ENTITY imath "ı" ><!--/imath - small i, no dot --> +<!ENTITY jmath "j︀" ><!--/jmath - small j, no dot --> +<!ENTITY laemptyv "⦴" ><!--circle, slash, left arrow above --> +<!ENTITY lltri "◺" ><!--lower left triangle --> +<!ENTITY lrtri "⊿" ><!--lower right triangle --> +<!ENTITY mho "℧" ><!--/mho - conductance --> +<!ENTITY nang "∠̸" ><!--not, vert, angle --> +<!ENTITY nexist "∄" ><!--/nexists - negated exists --> +<!ENTITY oS "Ⓢ" ><!--/circledS - capital S in circle --> +<!ENTITY planck "ℏ︀" ><!--/hbar - Planck's over 2pi --> +<!ENTITY plankv "ℏ" ><!--/hslash - variant Planck's over 2pi --> +<!ENTITY raemptyv "⦳" ><!--circle, slash, right arrow above --> +<!ENTITY range "⦥" ><!--reverse angle, equal --> +<!ENTITY real "ℜ" ><!--/Re - real --> +<!ENTITY tbrk "⎴" ><!--top square bracket --> +<!ENTITY ultri "◸" ><!--upper left triangle --> +<!ENTITY urtri "◹" ><!--upper right triangle --> +<!ENTITY vzigzag "⦚" ><!--vertical zig-zag line --> +<!ENTITY weierp "℘" ><!--/wp - Weierstrass p --> + + +<!ENTITY % ent-isoamsr + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Relations for MathML 2.0//EN" + "isoamsr.ent" > + +<!-- + File isoamsr.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY ape "≊" ><!--/approxeq R: approximate, equals --> +<!ENTITY apE "≊" ><!--approximately equal or equal to --> +<!ENTITY apid "≋" ><!--approximately identical to --> +<!ENTITY asymp "≍" ><!--/asymp R: asymptotically equal to --> +<!ENTITY Barv "⫧" ><!--vert, dbl bar (over) --> +<!ENTITY bcong "≌" ><!--/backcong R: reverse congruent --> +<!ENTITY bepsi "϶" ><!--/backepsilon R: such that --> +<!ENTITY bowtie "⋈" ><!--/bowtie R: --> +<!ENTITY bsim "∽" ><!--/backsim R: reverse similar --> +<!ENTITY bsime "⋍" ><!--/backsimeq R: reverse similar, eq --> +<!ENTITY bsolhsub "\⊂" ><!--reverse solidus, subset --> +<!ENTITY bump "≎" ><!--/Bumpeq R: bumpy equals --> +<!ENTITY bumpe "≏" ><!--/bumpeq R: bumpy equals, equals --> +<!ENTITY bumpE "⪮" ><!--bump, equals --> +<!ENTITY cire "≗" ><!--/circeq R: circle, equals --> +<!ENTITY Colon "∷" ><!--/Colon, two colons --> +<!ENTITY colone "≔" ><!--/coloneq R: colon, equals --> +<!ENTITY Colone "⩴" ><!--double colon, equals --> +<!ENTITY congdot "⩭" ><!--congruent, dot --> +<!ENTITY csub "⫏" ><!--subset, closed --> +<!ENTITY csube "⫑" ><!--subset, closed, equals --> +<!ENTITY csup "⫐" ><!--superset, closed --> +<!ENTITY csupe "⫒" ><!--superset, closed, equals --> +<!ENTITY cuepr "⋞" ><!--/curlyeqprec R: curly eq, precedes --> +<!ENTITY cuesc "⋟" ><!--/curlyeqsucc R: curly eq, succeeds --> +<!ENTITY dashv "⊣" ><!--/dashv R: dash, vertical --> +<!ENTITY Dashv "⫤" ><!--dbl dash, vertical --> +<!ENTITY easter "≛" ><!--equal, asterisk above --> +<!ENTITY ecir "≖" ><!--/eqcirc R: circle on equals sign --> +<!ENTITY ecolon "≕" ><!--/eqcolon R: equals, colon --> +<!ENTITY eDDot "⩷" ><!--/ddotseq R: equal with four dots --> +<!ENTITY eDot "≑" ><!--/doteqdot /Doteq R: eq, even dots --> +<!ENTITY efDot "≒" ><!--/fallingdotseq R: eq, falling dots --> +<!ENTITY eg "⪚" ><!--equal-or-greater --> +<!ENTITY egs "⋝" ><!--/eqslantgtr R: equal-or-gtr, slanted --> +<!ENTITY egsdot "⪘" ><!--equal-or-greater, slanted, dot inside --> +<!ENTITY el "⪙" ><!--equal-or-less --> +<!ENTITY els "⋜" ><!--/eqslantless R: eq-or-less, slanted --> +<!ENTITY elsdot "⪗" ><!--equal-or-less, slanted, dot inside --> +<!ENTITY equest "≟" ><!--/questeq R: equal with questionmark --> +<!ENTITY equivDD "⩸" ><!--equivalent, four dots above --> +<!ENTITY erDot "≓" ><!--/risingdotseq R: eq, rising dots --> +<!ENTITY esdot "≐" ><!--/doteq R: equals, single dot above --> +<!ENTITY esim "≂" ><!--/esim R: equals, similar --> +<!ENTITY Esim "⩳" ><!--equal, similar --> +<!ENTITY fork "⋔" ><!--/pitchfork R: pitchfork --> +<!ENTITY forkv "⫙" ><!--fork, variant --> +<!ENTITY frown "⌢" ><!--/frown R: down curve --> +<!ENTITY gap "≳" ><!--/gtrapprox R: greater, approximate --> +<!ENTITY gE "≧" ><!--/geqq R: greater, double equals --> +<!ENTITY gel "⋛" ><!--/gtreqless R: greater, equals, less --> +<!ENTITY gEl "⋛" ><!--/gtreqqless R: gt, dbl equals, less --> +<!ENTITY ges "⩾" ><!--/geqslant R: gt-or-equal, slanted --> +<!ENTITY gescc "⪩" ><!--greater than, closed by curve, equal, slanted --> +<!ENTITY gesdot "⪀" ><!--greater-than-or-equal, slanted, dot inside --> +<!ENTITY gesdoto "⪂" ><!--greater-than-or-equal, slanted, dot above --> +<!ENTITY gesdotol "⪄" ><!--greater-than-or-equal, slanted, dot above left --> +<!ENTITY gesl "⋛︀" ><!--greater, equal, slanted, less --> +<!ENTITY gesles "⪔" ><!--greater, equal, slanted, less, equal, slanted --> +<!ENTITY Gg "⋙" ><!--/ggg /Gg /gggtr R: triple gtr-than --> +<!ENTITY gl "≷" ><!--/gtrless R: greater, less --> +<!ENTITY gla "⪥" ><!--greater, less, apart --> +<!ENTITY glE "⪒" ><!--greater, less, equal --> +<!ENTITY glj "⪤" ><!--greater, less, overlapping --> +<!ENTITY gsim "≳" ><!--/gtrsim R: greater, similar --> +<!ENTITY gsime "⪎" ><!--greater, similar, equal --> +<!ENTITY gsiml "⪐" ><!--greater, similar, less --> +<!ENTITY Gt "≫" ><!--/gg R: dbl greater-than sign --> +<!ENTITY gtcc "⪧" ><!--greater than, closed by curve --> +<!ENTITY gtcir "⩺" ><!--greater than, circle inside --> +<!ENTITY gtdot "⋗" ><!--/gtrdot R: greater than, with dot --> +<!ENTITY gtquest "⩼" ><!--greater than, questionmark above --> +<!ENTITY gtrarr "⥸" ><!--greater than, right arrow --> +<!ENTITY homtht "∻" ><!--homothetic --> +<!ENTITY lap "≲" ><!--/lessapprox R: less, approximate --> +<!ENTITY lat "⪫" ><!--larger than --> +<!ENTITY late "⪭" ><!--larger than or equal --> +<!ENTITY lates "⪭︀" ><!--larger than or equal, slanted --> +<!ENTITY lE "≦" ><!--/leqq R: less, double equals --> +<!ENTITY leg "⋚" ><!--/lesseqgtr R: less, eq, greater --> +<!ENTITY lEg "⋚" ><!--/lesseqqgtr R: less, dbl eq, greater --> +<!ENTITY les "⩽" ><!--/leqslant R: less-than-or-eq, slant --> +<!ENTITY lescc "⪨" ><!--less than, closed by curve, equal, slanted --> +<!ENTITY lesdot "⩿" ><!--less-than-or-equal, slanted, dot inside --> +<!ENTITY lesdoto "⪁" ><!--less-than-or-equal, slanted, dot above --> +<!ENTITY lesdotor "⪃" ><!--less-than-or-equal, slanted, dot above right --> +<!ENTITY lesg "⋚︀" ><!--less, equal, slanted, greater --> +<!ENTITY lesges "⪓" ><!--less, equal, slanted, greater, equal, slanted --> +<!ENTITY lg "≶" ><!--/lessgtr R: less, greater --> +<!ENTITY lgE "⪑" ><!--less, greater, equal --> +<!ENTITY Ll "⋘" ><!--/Ll /lll /llless R: triple less-than --> +<!ENTITY lsim "≲" ><!--/lesssim R: less, similar --> +<!ENTITY lsime "⪍" ><!--less, similar, equal --> +<!ENTITY lsimg "⪏" ><!--less, similar, greater --> +<!ENTITY Lt "≪" ><!--/ll R: double less-than sign --> +<!ENTITY ltcc "⪦" ><!--less than, closed by curve --> +<!ENTITY ltcir "⩹" ><!--less than, circle inside --> +<!ENTITY ltdot "⋖" ><!--/lessdot R: less than, with dot --> +<!ENTITY ltlarr "⥶" ><!--less than, left arrow --> +<!ENTITY ltquest "⩻" ><!--less than, questionmark above --> +<!ENTITY ltrie "⊴" ><!--/trianglelefteq R: left triangle, eq --> +<!ENTITY mcomma "⨩" ><!--minus, comma above --> +<!ENTITY mDDot "∺" ><!--minus with four dots, geometric properties --> +<!ENTITY mid "∣" ><!--/mid R: --> +<!ENTITY mlcp "⫛" ><!--/mlcp --> +<!ENTITY models "⊧" ><!--/models R: --> +<!ENTITY mstpos "∾" ><!--most positive --> +<!ENTITY pr "≺" ><!--/prec R: precedes --> +<!ENTITY Pr "⪻" ><!--dbl precedes --> +<!ENTITY prap "≾" ><!--/precapprox R: precedes, approximate --> +<!ENTITY prcue "≼" ><!--/preccurlyeq R: precedes, curly eq --> +<!ENTITY pre "⪯" ><!--/preceq R: precedes, equals --> +<!ENTITY prE "⪯" ><!--precedes, dbl equals --> +<!ENTITY prsim "≾" ><!--/precsim R: precedes, similar --> +<!ENTITY prurel "⊰" ><!--element precedes under relation --> +<!ENTITY ratio "∶" ><!--/ratio --> +<!ENTITY rtrie "⊵" ><!--/trianglerighteq R: right tri, eq --> +<!ENTITY rtriltri "⧎" ><!--right triangle above left triangle --> +<!ENTITY sc "≻" ><!--/succ R: succeeds --> +<!ENTITY Sc "⪼" ><!--dbl succeeds --> +<!ENTITY scap "≿" ><!--/succapprox R: succeeds, approximate --> +<!ENTITY sccue "≽" ><!--/succcurlyeq R: succeeds, curly eq --> +<!ENTITY sce "≽" ><!--/succeq R: succeeds, equals --> +<!ENTITY scE "≾" ><!--succeeds, dbl equals --> +<!ENTITY scsim "≿" ><!--/succsim R: succeeds, similar --> +<!ENTITY sdote "⩦" ><!--equal, dot below --> +<!ENTITY simg "⪞" ><!--similar, greater --> +<!ENTITY simgE "⪠" ><!--similar, greater, equal --> +<!ENTITY siml "⪝" ><!--similar, less --> +<!ENTITY simlE "⪟" ><!--similar, less, equal --> +<!ENTITY smid "∣︀" ><!--/shortmid R: --> +<!ENTITY smile "⌣" ><!--/smile R: up curve --> +<!ENTITY smt "⪪" ><!--smaller than --> +<!ENTITY smte "⪬" ><!--smaller than or equal --> +<!ENTITY smtes "⪬︀" ><!--smaller than or equal, slanted --> +<!ENTITY spar "∥︀" ><!--/shortparallel R: short parallel --> +<!ENTITY sqsub "⊏" ><!--/sqsubset R: square subset --> +<!ENTITY sqsube "⊑" ><!--/sqsubseteq R: square subset, equals --> +<!ENTITY sqsup "⊐" ><!--/sqsupset R: square superset --> +<!ENTITY sqsupe "⊒" ><!--/sqsupseteq R: square superset, eq --> +<!ENTITY Sub "⋐" ><!--/Subset R: double subset --> +<!ENTITY subE "⊆" ><!--/subseteqq R: subset, dbl equals --> +<!ENTITY subedot "⫃" ><!--subset, equals, dot --> +<!ENTITY submult "⫁" ><!--subset, multiply --> +<!ENTITY subplus "⪿" ><!--subset, plus --> +<!ENTITY subrarr "⥹" ><!--subset, right arrow --> +<!ENTITY subsim "⫇" ><!--subset, similar --> +<!ENTITY subsub "⫕" ><!--subset above subset --> +<!ENTITY subsup "⫓" ><!--subset above superset --> +<!ENTITY Sup "⋑" ><!--/Supset R: dbl superset --> +<!ENTITY supdsub "⫘" ><!--superset, subset, dash joining them --> +<!ENTITY supE "⊇" ><!--/supseteqq R: superset, dbl equals --> +<!ENTITY supedot "⫄" ><!--superset, equals, dot --> +<!ENTITY suphsol "⊃/" ><!--superset, solidus --> +<!ENTITY suphsub "⫗" ><!--superset, subset --> +<!ENTITY suplarr "⥻" ><!--superset, left arrow --> +<!ENTITY supmult "⫂" ><!--superset, multiply --> +<!ENTITY supplus "⫀" ><!--superset, plus --> +<!ENTITY supsim "⫈" ><!--superset, similar --> +<!ENTITY supsub "⫔" ><!--superset above subset --> +<!ENTITY supsup "⫖" ><!--superset above superset --> +<!ENTITY thkap "≈︀" ><!--/thickapprox R: thick approximate --> +<!ENTITY thksim "∼︀" ><!--/thicksim R: thick similar --> +<!ENTITY topfork "⫚" ><!--fork with top --> +<!ENTITY trie "≜" ><!--/triangleq R: triangle, equals --> +<!ENTITY twixt "≬" ><!--/between R: between --> +<!ENTITY vBar "⫨" ><!--vert, dbl bar (under) --> +<!ENTITY Vbar "⫫" ><!--dbl vert, bar (under) --> +<!ENTITY vBarv "⫩" ><!--dbl bar, vert over and under --> +<!ENTITY vdash "⊢" ><!--/vdash R: vertical, dash --> +<!ENTITY vDash "⊨" ><!--/vDash R: vertical, dbl dash --> +<!ENTITY Vdash "⊩" ><!--/Vdash R: dbl vertical, dash --> +<!ENTITY VDash "⊫" ><!--dbl vert, dbl dash --> +<!ENTITY Vdashl "⫦" ><!--vertical, dash (long) --> +<!ENTITY vltri "⊲" ><!--/vartriangleleft R: l tri, open, var --> +<!ENTITY vprop "∝" ><!--/varpropto R: proportional, variant --> +<!ENTITY vrtri "⊳" ><!--/vartriangleright R: r tri, open, var --> +<!ENTITY Vvdash "⊪" ><!--/Vvdash R: triple vertical, dash --> + + +<!ENTITY % ent-isogrk3 + PUBLIC "-//W3C//ENTITIES Greek Symbols for MathML 2.0//EN" + "isogrk3.ent" > + +<!-- + File isogrk3.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY alpha "α" ><!--/alpha small alpha, Greek --> +<!ENTITY beta "β" ><!--/beta small beta, Greek --> +<!ENTITY chi "χ" ><!--/chi small chi, Greek --> +<!ENTITY delta "δ" ><!--/delta small delta, Greek --> +<!ENTITY Delta "Δ" ><!--/Delta capital Delta, Greek --> +<!ENTITY epsi "ε" ><!--/straightepsilon, small epsilon, Greek --> +<!ENTITY epsiv "ɛ" ><!--/varepsilon --> +<!ENTITY eta "η" ><!--/eta small eta, Greek --> +<!ENTITY gamma "γ" ><!--/gamma small gamma, Greek --> +<!ENTITY Gamma "Γ" ><!--/Gamma capital Gamma, Greek --> +<!ENTITY gammad "Ϝ" ><!--/digamma --> +<!ENTITY Gammad "Ϝ" ><!--capital digamma --> +<!ENTITY iota "ι" ><!--/iota small iota, Greek --> +<!ENTITY kappa "κ" ><!--/kappa small kappa, Greek --> +<!ENTITY kappav "ϰ" ><!--/varkappa --> +<!ENTITY lambda "λ" ><!--/lambda small lambda, Greek --> +<!ENTITY Lambda "Λ" ><!--/Lambda capital Lambda, Greek --> +<!ENTITY mu "μ" ><!--/mu small mu, Greek --> +<!ENTITY nu "ν" ><!--/nu small nu, Greek --> +<!ENTITY omega "ω" ><!--/omega small omega, Greek --> +<!ENTITY Omega "Ω" ><!--/Omega capital Omega, Greek --> +<!ENTITY phi "φ" ><!--/straightphi - small phi, Greek --> +<!ENTITY Phi "Φ" ><!--/Phi capital Phi, Greek --> +<!ENTITY phiv "ϕ" ><!--/varphi - curly or open phi --> +<!ENTITY pi "π" ><!--/pi small pi, Greek --> +<!ENTITY Pi "Π" ><!--/Pi capital Pi, Greek --> +<!ENTITY piv "ϖ" ><!--/varpi --> +<!ENTITY psi "ψ" ><!--/psi small psi, Greek --> +<!ENTITY Psi "Ψ" ><!--/Psi capital Psi, Greek --> +<!ENTITY rho "ρ" ><!--/rho small rho, Greek --> +<!ENTITY rhov "ϱ" ><!--/varrho --> +<!ENTITY sigma "σ" ><!--/sigma small sigma, Greek --> +<!ENTITY Sigma "Σ" ><!--/Sigma capital Sigma, Greek --> +<!ENTITY sigmav "ς" ><!--/varsigma --> +<!ENTITY tau "τ" ><!--/tau small tau, Greek --> +<!ENTITY theta "θ" ><!--/theta straight theta, small theta, Greek --> +<!ENTITY Theta "Θ" ><!--/Theta capital Theta, Greek --> +<!ENTITY thetav "ϑ" ><!--/vartheta - curly or open theta --> +<!ENTITY upsi "υ" ><!--/upsilon small upsilon, Greek --> +<!ENTITY Upsi "ϒ" ><!--/Upsilon capital Upsilon, Greek --> +<!ENTITY xi "ξ" ><!--/xi small xi, Greek --> +<!ENTITY Xi "Ξ" ><!--/Xi capital Xi, Greek --> +<!ENTITY zeta "ζ" ><!--/zeta small zeta, Greek --> + + +<!ENTITY % ent-isomfrk + PUBLIC "-//W3C//ENTITIES Math Alphabets: Fraktur for MathML 2.0//EN" + "isomfrk.ent" > + +<!-- + File isomfrk.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY afr "𝔞" ><!--/frak a, lower case a --> +<!ENTITY Afr "𝔄" ><!--/frak A, upper case a --> +<!ENTITY bfr "𝔟" ><!--/frak b, lower case b --> +<!ENTITY Bfr "𝔅" ><!--/frak B, upper case b --> +<!ENTITY cfr "𝔠" ><!--/frak c, lower case c --> +<!ENTITY Cfr "ℭ" ><!--/frak C, upper case c --> +<!ENTITY dfr "𝔡" ><!--/frak d, lower case d --> +<!ENTITY Dfr "𝔇" ><!--/frak D, upper case d --> +<!ENTITY efr "𝔢" ><!--/frak e, lower case e --> +<!ENTITY Efr "𝔈" ><!--/frak E, upper case e --> +<!ENTITY ffr "𝔣" ><!--/frak f, lower case f --> +<!ENTITY Ffr "𝔉" ><!--/frak F, upper case f --> +<!ENTITY gfr "𝔤" ><!--/frak g, lower case g --> +<!ENTITY Gfr "𝔊" ><!--/frak G, upper case g --> +<!ENTITY hfr "𝔥" ><!--/frak h, lower case h --> +<!ENTITY Hfr "ℌ" ><!--/frak H, upper case h --> +<!ENTITY ifr "𝔦" ><!--/frak i, lower case i --> +<!ENTITY Ifr "ℑ" ><!--/frak I, upper case i --> +<!ENTITY jfr "𝔧" ><!--/frak j, lower case j --> +<!ENTITY Jfr "𝔍" ><!--/frak J, upper case j --> +<!ENTITY kfr "𝔨" ><!--/frak k, lower case k --> +<!ENTITY Kfr "𝔎" ><!--/frak K, upper case k --> +<!ENTITY lfr "𝔩" ><!--/frak l, lower case l --> +<!ENTITY Lfr "𝔏" ><!--/frak L, upper case l --> +<!ENTITY mfr "𝔪" ><!--/frak m, lower case m --> +<!ENTITY Mfr "𝔐" ><!--/frak M, upper case m --> +<!ENTITY nfr "𝔫" ><!--/frak n, lower case n --> +<!ENTITY Nfr "𝔑" ><!--/frak N, upper case n --> +<!ENTITY ofr "𝔬" ><!--/frak o, lower case o --> +<!ENTITY Ofr "𝔒" ><!--/frak O, upper case o --> +<!ENTITY pfr "𝔭" ><!--/frak p, lower case p --> +<!ENTITY Pfr "𝔓" ><!--/frak P, upper case p --> +<!ENTITY qfr "𝔮" ><!--/frak q, lower case q --> +<!ENTITY Qfr "𝔔" ><!--/frak Q, upper case q --> +<!ENTITY rfr "𝔯" ><!--/frak r, lower case r --> +<!ENTITY Rfr "ℜ" ><!--/frak R, upper case r --> +<!ENTITY sfr "𝔰" ><!--/frak s, lower case s --> +<!ENTITY Sfr "𝔖" ><!--/frak S, upper case s --> +<!ENTITY tfr "𝔱" ><!--/frak t, lower case t --> +<!ENTITY Tfr "𝔗" ><!--/frak T, upper case t --> +<!ENTITY ufr "𝔲" ><!--/frak u, lower case u --> +<!ENTITY Ufr "𝔘" ><!--/frak U, upper case u --> +<!ENTITY vfr "𝔳" ><!--/frak v, lower case v --> +<!ENTITY Vfr "𝔙" ><!--/frak V, upper case v --> +<!ENTITY wfr "𝔴" ><!--/frak w, lower case w --> +<!ENTITY Wfr "𝔚" ><!--/frak W, upper case w --> +<!ENTITY xfr "𝔵" ><!--/frak x, lower case x --> +<!ENTITY Xfr "𝔛" ><!--/frak X, upper case x --> +<!ENTITY yfr "𝔶" ><!--/frak y, lower case y --> +<!ENTITY Yfr "𝔜" ><!--/frak Y, upper case y --> +<!ENTITY zfr "𝔷" ><!--/frak z, lower case z --> +<!ENTITY Zfr "ℨ" ><!--/frak Z, upper case z --> + + +<!ENTITY % ent-isomopf + PUBLIC "-//W3C//ENTITIES Math Alphabets: Open Face for MathML 2.0//EN" + "isomopf.ent" > + +<!-- + File isomopf.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY Aopf "𝔸" ><!--/Bbb A, open face A --> +<!ENTITY Bopf "𝔹" ><!--/Bbb B, open face B --> +<!ENTITY Copf "ℂ" ><!--/Bbb C, open face C --> +<!ENTITY Dopf "𝔻" ><!--/Bbb D, open face D --> +<!ENTITY Eopf "𝔼" ><!--/Bbb E, open face E --> +<!ENTITY Fopf "𝔽" ><!--/Bbb F, open face F --> +<!ENTITY Gopf "𝔾" ><!--/Bbb G, open face G --> +<!ENTITY Hopf "ℍ" ><!--/Bbb H, open face H --> +<!ENTITY Iopf "𝕀" ><!--/Bbb I, open face I --> +<!ENTITY Jopf "𝕁" ><!--/Bbb J, open face J --> +<!ENTITY Kopf "𝕂" ><!--/Bbb K, open face K --> +<!ENTITY Lopf "𝕃" ><!--/Bbb L, open face L --> +<!ENTITY Mopf "𝕄" ><!--/Bbb M, open face M --> +<!ENTITY Nopf "ℕ" ><!--/Bbb N, open face N --> +<!ENTITY Oopf "𝕆" ><!--/Bbb O, open face O --> +<!ENTITY Popf "ℙ" ><!--/Bbb P, open face P --> +<!ENTITY Qopf "ℚ" ><!--/Bbb Q, open face Q --> +<!ENTITY Ropf "ℝ" ><!--/Bbb R, open face R --> +<!ENTITY Sopf "𝕊" ><!--/Bbb S, open face S --> +<!ENTITY Topf "𝕋" ><!--/Bbb T, open face T --> +<!ENTITY Uopf "𝕌" ><!--/Bbb U, open face U --> +<!ENTITY Vopf "𝕍" ><!--/Bbb V, open face V --> +<!ENTITY Wopf "𝕎" ><!--/Bbb W, open face W --> +<!ENTITY Xopf "𝕏" ><!--/Bbb X, open face X --> +<!ENTITY Yopf "𝕐" ><!--/Bbb Y, open face Y --> +<!ENTITY Zopf "ℤ" ><!--/Bbb Z, open face Z --> + + +<!ENTITY % ent-isomscr + PUBLIC "-//W3C//ENTITIES Math Alphabets: Script for MathML 2.0//EN" + "isomscr.ent" > + +<!-- + File isomscr.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY ascr "𝒶" ><!--/scr a, script letter a --> +<!ENTITY Ascr "𝒜" ><!--/scr A, script letter A --> +<!ENTITY bscr "𝒷" ><!--/scr b, script letter b --> +<!ENTITY Bscr "ℬ" ><!--/scr B, script letter B --> +<!ENTITY cscr "𝒸" ><!--/scr c, script letter c --> +<!ENTITY Cscr "𝒞" ><!--/scr C, script letter C --> +<!ENTITY dscr "𝒹" ><!--/scr d, script letter d --> +<!ENTITY Dscr "𝒟" ><!--/scr D, script letter D --> +<!ENTITY escr "ℯ" ><!--/scr e, script letter e --> +<!ENTITY Escr "ℰ" ><!--/scr E, script letter E --> +<!ENTITY fscr "𝒻" ><!--/scr f, script letter f --> +<!ENTITY Fscr "ℱ" ><!--/scr F, script letter F --> +<!ENTITY gscr "ℊ" ><!--/scr g, script letter g --> +<!ENTITY Gscr "𝒢" ><!--/scr G, script letter G --> +<!ENTITY hscr "𝒽" ><!--/scr h, script letter h --> +<!ENTITY Hscr "ℋ" ><!--/scr H, script letter H --> +<!ENTITY iscr "𝒾" ><!--/scr i, script letter i --> +<!ENTITY Iscr "ℐ" ><!--/scr I, script letter I --> +<!ENTITY jscr "𝒿" ><!--/scr j, script letter j --> +<!ENTITY Jscr "𝒥" ><!--/scr J, script letter J --> +<!ENTITY kscr "𝓀" ><!--/scr k, script letter k --> +<!ENTITY Kscr "𝒦" ><!--/scr K, script letter K --> +<!ENTITY lscr "ℓ" ><!--/scr l, script letter l --> +<!ENTITY Lscr "ℒ" ><!--/scr L, script letter L --> +<!ENTITY mscr "𝓂" ><!--/scr m, script letter m --> +<!ENTITY Mscr "ℳ" ><!--/scr M, script letter M --> +<!ENTITY nscr "𝓃" ><!--/scr n, script letter n --> +<!ENTITY Nscr "𝒩" ><!--/scr N, script letter N --> +<!ENTITY oscr "ℴ" ><!--/scr o, script letter o --> +<!ENTITY Oscr "𝒪" ><!--/scr O, script letter O --> +<!ENTITY pscr "𝓅" ><!--/scr p, script letter p --> +<!ENTITY Pscr "𝒫" ><!--/scr P, script letter P --> +<!ENTITY qscr "𝓆" ><!--/scr q, script letter q --> +<!ENTITY Qscr "𝒬" ><!--/scr Q, script letter Q --> +<!ENTITY rscr "𝓇" ><!--/scr r, script letter r --> +<!ENTITY Rscr "ℛ" ><!--/scr R, script letter R --> +<!ENTITY sscr "𝓈" ><!--/scr s, script letter s --> +<!ENTITY Sscr "𝒮" ><!--/scr S, script letter S --> +<!ENTITY tscr "𝓉" ><!--/scr t, script letter t --> +<!ENTITY Tscr "𝒯" ><!--/scr T, script letter T --> +<!ENTITY uscr "𝓊" ><!--/scr u, script letter u --> +<!ENTITY Uscr "𝒰" ><!--/scr U, script letter U --> +<!ENTITY vscr "𝓋" ><!--/scr v, script letter v --> +<!ENTITY Vscr "𝒱" ><!--/scr V, script letter V --> +<!ENTITY wscr "𝓌" ><!--/scr w, script letter w --> +<!ENTITY Wscr "𝒲" ><!--/scr W, script letter W --> +<!ENTITY xscr "𝓍" ><!--/scr x, script letter x --> +<!ENTITY Xscr "𝒳" ><!--/scr X, script letter X --> +<!ENTITY yscr "𝓎" ><!--/scr y, script letter y --> +<!ENTITY Yscr "𝒴" ><!--/scr Y, script letter Y --> +<!ENTITY zscr "𝓏" ><!--/scr z, script letter z --> +<!ENTITY Zscr "𝒵" ><!--/scr Z, script letter Z --> + + +<!ENTITY % ent-isotech + PUBLIC "-//W3C//ENTITIES General Technical for MathML 2.0//EN" + "isotech.ent" > + +<!-- + File isotech.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY acd "∿" ><!--ac current --> +<!ENTITY aleph "ℵ" ><!--/aleph aleph, Hebrew --> +<!ENTITY and "∧" ><!--/wedge /land B: logical and --> +<!ENTITY And "⩓" ><!--dbl logical and --> +<!ENTITY andand "⩕" ><!--two logical and --> +<!ENTITY andd "⩜" ><!--and, horizontal dash --> +<!ENTITY andslope "⩘" ><!--sloping large and --> +<!ENTITY andv "⩚" ><!--and with middle stem --> +<!ENTITY angrt "∟" ><!--right (90 degree) angle --> +<!ENTITY angsph "∢" ><!--/sphericalangle angle-spherical --> +<!ENTITY angst "Å" ><!--Angstrom capital A, ring --> +<!ENTITY ap "≈" ><!--/approx R: approximate --> +<!ENTITY apacir "⩯" ><!--approximate, circumflex accent --> +<!ENTITY awconint "∳" ><!--contour integral, anti-clockwise --> +<!ENTITY awint "⨑" ><!--anti clock-wise integration --> +<!ENTITY becaus "∵" ><!--/because R: because --> +<!ENTITY bernou "ℬ" ><!--Bernoulli function (script capital B) --> +<!ENTITY bne "=⃥" ><!--reverse not equal --> +<!ENTITY bnequiv "≡⃥" ><!--reverse not equivalent --> +<!ENTITY bnot "⌐" ><!--reverse not --> +<!ENTITY bNot "⫭" ><!--reverse not with two horizontal strokes --> +<!ENTITY bottom "⊥" ><!--/bot bottom --> +<!ENTITY cap "∩" ><!--/cap B: intersection --> +<!ENTITY Cconint "∰" ><!--triple contour integral operator --> +<!ENTITY cirfnint "⨐" ><!--circulation function --> +<!ENTITY compfn "∘" ><!--/circ B: composite function (small circle) --> +<!ENTITY cong "≅" ><!--/cong R: congruent with --> +<!ENTITY conint "∮" ><!--/oint L: contour integral operator --> +<!ENTITY Conint "∯" ><!--double contour integral operator --> +<!ENTITY ctdot "⋯" ><!--/cdots, three dots, centered --> +<!ENTITY cup "∪" ><!--/cup B: union or logical sum --> +<!ENTITY cwconint "∲" ><!--contour integral, clockwise --> +<!ENTITY cwint "∱" ><!--clockwise integral --> +<!ENTITY cylcty "⌭" ><!--cylindricity --> +<!ENTITY disin "⋲" ><!--set membership, long horizontal stroke --> +<!ENTITY Dot "¨" ><!--dieresis or umlaut mark --> +<!ENTITY DotDot "⃜" ><!--four dots above --> +<!ENTITY dsol "⧶" ><!--solidus, bar above --> +<!ENTITY dtdot "⋱" ><!--/ddots, three dots, descending --> +<!ENTITY dwangle "⦦" ><!--large downward pointing angle --> +<!ENTITY epar "⋕" ><!--parallel, equal; equal or parallel --> +<!ENTITY eparsl "⧣" ><!--parallel, slanted, equal; homothetically congruent to --> +<!ENTITY equiv "≡" ><!--/equiv R: identical with --> +<!ENTITY eqvparsl "⧥" ><!--equivalent, equal; congruent and parallel --> +<!ENTITY exist "∃" ><!--/exists at least one exists --> +<!ENTITY fnof "ƒ" ><!--function of (italic small f) --> +<!ENTITY forall "∀" ><!--/forall for all --> +<!ENTITY fpartint "⨍" ><!--finite part integral --> +<!ENTITY ge "≥" ><!--/geq /ge R: greater-than-or-equal --> +<!ENTITY hamilt "ℋ" ><!--Hamiltonian (script capital H) --> +<!ENTITY iff "⇔" ><!--/iff if and only if --> +<!ENTITY iinfin "⧜" ><!--infinity sign, incomplete --> +<!ENTITY imped "𝕃" ><!--impedance --> +<!ENTITY infin "∞" ><!--/infty infinity --> +<!ENTITY int "∫" ><!--/int L: integral operator --> +<!ENTITY Int "∬" ><!--double integral operator --> +<!ENTITY intlarhk "⨗" ><!--integral, left arrow with hook --> +<!ENTITY isin "∈" ><!--/in R: set membership --> +<!ENTITY isindot "⋵" ><!--set membership, dot above --> +<!ENTITY isinE "⋹" ><!--set membership, two horizontal strokes --> +<!ENTITY isins "⋴" ><!--set membership, vertical bar on horizontal stroke --> +<!ENTITY isinsv "⋳" ><!--large set membership, vertical bar on horizontal stroke --> +<!ENTITY isinv "∈" ><!--set membership, variant --> +<!ENTITY lagran "ℒ" ><!--Lagrangian (script capital L) --> +<!ENTITY lang "〈" ><!--/langle O: left angle bracket --> +<!ENTITY Lang "《" ><!--left angle bracket, double --> +<!ENTITY lArr "⇐" ><!--/Leftarrow A: is implied by --> +<!ENTITY lbbrk "〔" ><!--left broken bracket --> +<!ENTITY le "≤" ><!--/leq /le R: less-than-or-equal --> +<!ENTITY loang "" ><!--left open angular bracket --> +<!ENTITY lobrk "〚" ><!--left open bracket --> +<!ENTITY lopar "〘" ><!--left open parenthesis --> +<!ENTITY lowast "∗" ><!--low asterisk --> +<!ENTITY minus "−" ><!--B: minus sign --> +<!ENTITY mnplus "∓" ><!--/mp B: minus-or-plus sign --> +<!ENTITY nabla "∇" ><!--/nabla del, Hamilton operator --> +<!ENTITY ne "≠" ><!--/ne /neq R: not equal --> +<!ENTITY nedot "≠︀" ><!--not equal, dot --> +<!ENTITY nhpar "⫲" ><!--not, horizontal, parallel --> +<!ENTITY ni "∋" ><!--/ni /owns R: contains --> +<!ENTITY nis "⋼" ><!--contains, vertical bar on horizontal stroke --> +<!ENTITY nisd "⋺" ><!--contains, long horizontal stroke --> +<!ENTITY niv "∋" ><!--contains, variant --> +<!ENTITY Not "⫬" ><!--not with two horizontal strokes --> +<!ENTITY notin "∉" ><!--/notin N: negated set membership --> +<!ENTITY notindot "⋶︀" ><!--negated set membership, dot above --> +<!ENTITY notinva "∉̸" ><!--negated set membership, variant --> +<!ENTITY notinvb "⋷" ><!--negated set membership, variant --> +<!ENTITY notinvc "⋶" ><!--negated set membership, variant --> +<!ENTITY notni "∌" ><!--negated contains --> +<!ENTITY notniva "∌" ><!--negated contains, variant --> +<!ENTITY notnivb "⋾" ><!--contains, variant --> +<!ENTITY notnivc "⋽" ><!--contains, variant --> +<!ENTITY nparsl "∥︀⃥" ><!--not parallel, slanted --> +<!ENTITY npart "∂̸" ><!--not partial differential --> +<!ENTITY npolint "⨔" ><!--line integration, not including the pole --> +<!ENTITY nvinfin "⧞" ><!--not, vert, infinity --> +<!ENTITY olcross "⦻" ><!--circle, cross --> +<!ENTITY or "∨" ><!--/vee /lor B: logical or --> +<!ENTITY Or "⩔" ><!--dbl logical or --> +<!ENTITY ord "⩝" ><!--or, horizontal dash --> +<!ENTITY order "ℴ" ><!--order of (script small o) --> +<!ENTITY oror "⩖" ><!--two logical or --> +<!ENTITY orslope "⩗" ><!--sloping large or --> +<!ENTITY orv "⩛" ><!--or with middle stem --> +<!ENTITY par "∥" ><!--/parallel R: parallel --> +<!ENTITY parsl "∥︀" ><!--parallel, slanted --> +<!ENTITY part "∂" ><!--/partial partial differential --> +<!ENTITY permil "‰" ><!--per thousand --> +<!ENTITY perp "⊥" ><!--/perp R: perpendicular --> +<!ENTITY pertenk "‱" ><!--per 10 thousand --> +<!ENTITY phmmat "ℳ" ><!--physics M-matrix (script capital M) --> +<!ENTITY pointint "⨕" ><!--integral around a point operator --> +<!ENTITY prime "′" ><!--/prime prime or minute --> +<!ENTITY Prime "″" ><!--double prime or second --> +<!ENTITY profalar "⌮" ><!--all-around profile --> +<!ENTITY profline "⌒" ><!--profile of a line --> +<!ENTITY profsurf "⌓" ><!--profile of a surface --> +<!ENTITY prop "∝" ><!--/propto R: is proportional to --> +<!ENTITY qint "⨌" ><!--/iiiint quadruple integral operator --> +<!ENTITY qprime "⁗" ><!--quadruple prime --> +<!ENTITY quatint "⨖" ><!--quaternion integral operator --> +<!ENTITY radic "√" ><!--/surd radical --> +<!ENTITY rang "〉" ><!--/rangle C: right angle bracket --> +<!ENTITY Rang "》" ><!--right angle bracket, double --> +<!ENTITY rArr "⇒" ><!--/Rightarrow A: implies --> +<!ENTITY rbbrk "〕" ><!--right broken bracket --> +<!ENTITY roang "" ><!--right open angular bracket --> +<!ENTITY robrk "〛" ><!--right open bracket --> +<!ENTITY ropar "〙" ><!--right open parenthesis --> +<!ENTITY rppolint "⨒" ><!--line integration, rectangular path around pole --> +<!ENTITY scpolint "⨓" ><!--line integration, semi-circular path around pole --> +<!ENTITY sim "∼" ><!--/sim R: similar --> +<!ENTITY simdot "⩪" ><!--similar, dot --> +<!ENTITY sime "≃" ><!--/simeq R: similar, equals --> +<!ENTITY smeparsl "⧤" ><!--similar, parallel, slanted, equal --> +<!ENTITY square "□" ><!--/square, square --> +<!ENTITY squarf "▪" ><!--/blacksquare, square, filled --> +<!ENTITY sub "⊂" ><!--/subset R: subset or is implied by --> +<!ENTITY sube "⊆" ><!--/subseteq R: subset, equals --> +<!ENTITY sup "⊃" ><!--/supset R: superset or implies --> +<!ENTITY supe "⊇" ><!--/supseteq R: superset, equals --> +<!ENTITY tdot "⃛" ><!--three dots above --> +<!ENTITY there4 "∴" ><!--/therefore R: therefore --> +<!ENTITY tint "∭" ><!--/iiint triple integral operator --> +<!ENTITY top "⊤" ><!--/top top --> +<!ENTITY topbot "⌶" ><!--top and bottom --> +<!ENTITY topcir "⫱" ><!--top, circle below --> +<!ENTITY tprime "‴" ><!--triple prime --> +<!ENTITY utdot "⋰" ><!--three dots, ascending --> +<!ENTITY uwangle "⦧" ><!--large upward pointing angle --> +<!ENTITY vangrt "⊾" ><!--right angle, variant --> +<!ENTITY veeeq "≚" ><!--logical or, equals --> +<!ENTITY Verbar "‖" ><!--/Vert dbl vertical bar --> +<!ENTITY wedgeq "≙" ><!--/wedgeq R: corresponds to (wedge, equals) --> +<!ENTITY xnis "⋻" ><!--large contains, vertical bar on horizontal stroke --> + + +<!-- Entity sets from informative annex to ISO 8879:1986 (SGML) ....... --> + +<!ENTITY % ent-isobox + PUBLIC "-//W3C//ENTITIES Box and Line Drawing for MathML 2.0//EN" + "isobox.ent" > + +<!-- + File isobox.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY boxdl "┐" ><!--lower left quadrant --> +<!ENTITY boxdL "╕" ><!--lower left quadrant --> +<!ENTITY boxDl "╖" ><!--lower left quadrant --> +<!ENTITY boxDL "╗" ><!--lower left quadrant --> +<!ENTITY boxdr "┌" ><!--lower right quadrant --> +<!ENTITY boxdR "╒" ><!--lower right quadrant --> +<!ENTITY boxDr "╓" ><!--lower right quadrant --> +<!ENTITY boxDR "╔" ><!--lower right quadrant --> +<!ENTITY boxh "─" ><!--horizontal line --> +<!ENTITY boxH "═" ><!--horizontal line --> +<!ENTITY boxhd "┬" ><!--lower left and right quadrants --> +<!ENTITY boxhD "╥" ><!--lower left and right quadrants --> +<!ENTITY boxHd "╤" ><!--lower left and right quadrants --> +<!ENTITY boxHD "╦" ><!--lower left and right quadrants --> +<!ENTITY boxhu "┴" ><!--upper left and right quadrants --> +<!ENTITY boxhU "╨" ><!--upper left and right quadrants --> +<!ENTITY boxHu "╧" ><!--upper left and right quadrants --> +<!ENTITY boxHU "╩" ><!--upper left and right quadrants --> +<!ENTITY boxul "┘" ><!--upper left quadrant --> +<!ENTITY boxuL "╛" ><!--upper left quadrant --> +<!ENTITY boxUl "╜" ><!--upper left quadrant --> +<!ENTITY boxUL "╝" ><!--upper left quadrant --> +<!ENTITY boxur "└" ><!--upper right quadrant --> +<!ENTITY boxuR "╘" ><!--upper right quadrant --> +<!ENTITY boxUr "╙" ><!--upper right quadrant --> +<!ENTITY boxUR "╚" ><!--upper right quadrant --> +<!ENTITY boxv "│" ><!--vertical line --> +<!ENTITY boxV "║" ><!--vertical line --> +<!ENTITY boxvh "┼" ><!--all four quadrants --> +<!ENTITY boxvH "╪" ><!--all four quadrants --> +<!ENTITY boxVh "╫" ><!--all four quadrants --> +<!ENTITY boxVH "╬" ><!--all four quadrants --> +<!ENTITY boxvl "┤" ><!--upper and lower left quadrants --> +<!ENTITY boxvL "╡" ><!--upper and lower left quadrants --> +<!ENTITY boxVl "╢" ><!--upper and lower left quadrants --> +<!ENTITY boxVL "╣" ><!--upper and lower left quadrants --> +<!ENTITY boxvr "├" ><!--upper and lower right quadrants --> +<!ENTITY boxvR "╞" ><!--upper and lower right quadrants --> +<!ENTITY boxVr "╟" ><!--upper and lower right quadrants --> +<!ENTITY boxVR "╠" ><!--upper and lower right quadrants --> + + +<!ENTITY % ent-isocyr1 + PUBLIC "-//W3C//ENTITIES Russian Cyrillic for MathML 2.0//EN" + "isocyr1.ent" > + +<!-- + File isocyr1.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY acy "а" ><!--=small a, Cyrillic --> +<!ENTITY Acy "А" ><!--=capital A, Cyrillic --> +<!ENTITY bcy "б" ><!--=small be, Cyrillic --> +<!ENTITY Bcy "Б" ><!--=capital BE, Cyrillic --> +<!ENTITY chcy "ч" ><!--=small che, Cyrillic --> +<!ENTITY CHcy "Ч" ><!--=capital CHE, Cyrillic --> +<!ENTITY dcy "д" ><!--=small de, Cyrillic --> +<!ENTITY Dcy "Д" ><!--=capital DE, Cyrillic --> +<!ENTITY ecy "э" ><!--=small e, Cyrillic --> +<!ENTITY Ecy "Э" ><!--=capital E, Cyrillic --> +<!ENTITY fcy "ф" ><!--=small ef, Cyrillic --> +<!ENTITY Fcy "Ф" ><!--=capital EF, Cyrillic --> +<!ENTITY gcy "г" ><!--=small ghe, Cyrillic --> +<!ENTITY Gcy "Г" ><!--=capital GHE, Cyrillic --> +<!ENTITY hardcy "ъ" ><!--=small hard sign, Cyrillic --> +<!ENTITY HARDcy "Ъ" ><!--=capital HARD sign, Cyrillic --> +<!ENTITY icy "и" ><!--=small i, Cyrillic --> +<!ENTITY Icy "И" ><!--=capital I, Cyrillic --> +<!ENTITY iecy "е" ><!--=small ie, Cyrillic --> +<!ENTITY IEcy "Е" ><!--=capital IE, Cyrillic --> +<!ENTITY iocy "ё" ><!--=small io, Russian --> +<!ENTITY IOcy "Ё" ><!--=capital IO, Russian --> +<!ENTITY jcy "й" ><!--=small short i, Cyrillic --> +<!ENTITY Jcy "Й" ><!--=capital short I, Cyrillic --> +<!ENTITY kcy "к" ><!--=small ka, Cyrillic --> +<!ENTITY Kcy "К" ><!--=capital KA, Cyrillic --> +<!ENTITY khcy "х" ><!--=small ha, Cyrillic --> +<!ENTITY KHcy "Х" ><!--=capital HA, Cyrillic --> +<!ENTITY lcy "л" ><!--=small el, Cyrillic --> +<!ENTITY Lcy "Л" ><!--=capital EL, Cyrillic --> +<!ENTITY mcy "м" ><!--=small em, Cyrillic --> +<!ENTITY Mcy "М" ><!--=capital EM, Cyrillic --> +<!ENTITY ncy "н" ><!--=small en, Cyrillic --> +<!ENTITY Ncy "Н" ><!--=capital EN, Cyrillic --> +<!ENTITY numero "№" ><!--=numero sign --> +<!ENTITY ocy "о" ><!--=small o, Cyrillic --> +<!ENTITY Ocy "О" ><!--=capital O, Cyrillic --> +<!ENTITY pcy "п" ><!--=small pe, Cyrillic --> +<!ENTITY Pcy "П" ><!--=capital PE, Cyrillic --> +<!ENTITY rcy "р" ><!--=small er, Cyrillic --> +<!ENTITY Rcy "Р" ><!--=capital ER, Cyrillic --> +<!ENTITY scy "с" ><!--=small es, Cyrillic --> +<!ENTITY Scy "С" ><!--=capital ES, Cyrillic --> +<!ENTITY shchcy "щ" ><!--=small shcha, Cyrillic --> +<!ENTITY SHCHcy "Щ" ><!--=capital SHCHA, Cyrillic --> +<!ENTITY shcy "ш" ><!--=small sha, Cyrillic --> +<!ENTITY SHcy "Ш" ><!--=capital SHA, Cyrillic --> +<!ENTITY softcy "ь" ><!--=small soft sign, Cyrillic --> +<!ENTITY SOFTcy "Ь" ><!--=capital SOFT sign, Cyrillic --> +<!ENTITY tcy "т" ><!--=small te, Cyrillic --> +<!ENTITY Tcy "Т" ><!--=capital TE, Cyrillic --> +<!ENTITY tscy "ц" ><!--=small tse, Cyrillic --> +<!ENTITY TScy "Ц" ><!--=capital TSE, Cyrillic --> +<!ENTITY ucy "у" ><!--=small u, Cyrillic --> +<!ENTITY Ucy "У" ><!--=capital U, Cyrillic --> +<!ENTITY vcy "в" ><!--=small ve, Cyrillic --> +<!ENTITY Vcy "В" ><!--=capital VE, Cyrillic --> +<!ENTITY yacy "я" ><!--=small ya, Cyrillic --> +<!ENTITY YAcy "Я" ><!--=capital YA, Cyrillic --> +<!ENTITY ycy "ы" ><!--=small yeru, Cyrillic --> +<!ENTITY Ycy "Ы" ><!--=capital YERU, Cyrillic --> +<!ENTITY yucy "ю" ><!--=small yu, Cyrillic --> +<!ENTITY YUcy "Ю" ><!--=capital YU, Cyrillic --> +<!ENTITY zcy "з" ><!--=small ze, Cyrillic --> +<!ENTITY Zcy "З" ><!--=capital ZE, Cyrillic --> +<!ENTITY zhcy "ж" ><!--=small zhe, Cyrillic --> +<!ENTITY ZHcy "Ж" ><!--=capital ZHE, Cyrillic --> + + +<!ENTITY % ent-isocyr2 + PUBLIC "-//W3C//ENTITIES Non-Russian Cyrillic for MathML 2.0//EN" + "isocyr2.ent" > + +<!-- + File isocyr2.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY djcy "ђ" ><!--=small dje, Serbian --> +<!ENTITY DJcy "Ђ" ><!--=capital DJE, Serbian --> +<!ENTITY dscy "ѕ" ><!--=small dse, Macedonian --> +<!ENTITY DScy "Ѕ" ><!--=capital DSE, Macedonian --> +<!ENTITY dzcy "џ" ><!--=small dze, Serbian --> +<!ENTITY DZcy "Џ" ><!--=capital dze, Serbian --> +<!ENTITY gjcy "ѓ" ><!--=small gje, Macedonian --> +<!ENTITY GJcy "Ѓ" ><!--=capital GJE Macedonian --> +<!ENTITY iukcy "і" ><!--=small i, Ukrainian --> +<!ENTITY Iukcy "І" ><!--=capital I, Ukrainian --> +<!ENTITY jsercy "ј" ><!--=small je, Serbian --> +<!ENTITY Jsercy "Ј" ><!--=capital JE, Serbian --> +<!ENTITY jukcy "є" ><!--=small je, Ukrainian --> +<!ENTITY Jukcy "Є" ><!--=capital JE, Ukrainian --> +<!ENTITY kjcy "ќ" ><!--=small kje Macedonian --> +<!ENTITY KJcy "Ќ" ><!--=capital KJE, Macedonian --> +<!ENTITY ljcy "љ" ><!--=small lje, Serbian --> +<!ENTITY LJcy "Љ" ><!--=capital LJE, Serbian --> +<!ENTITY njcy "њ" ><!--=small nje, Serbian --> +<!ENTITY NJcy "Њ" ><!--=capital NJE, Serbian --> +<!ENTITY tshcy "ћ" ><!--=small tshe, Serbian --> +<!ENTITY TSHcy "Ћ" ><!--=capital TSHE, Serbian --> +<!ENTITY ubrcy "ў" ><!--=small u, Byelorussian --> +<!ENTITY Ubrcy "Ў" ><!--=capital U, Byelorussian --> +<!ENTITY yicy "ї" ><!--=small yi, Ukrainian --> +<!ENTITY YIcy "Ї" ><!--=capital YI, Ukrainian --> + + +<!ENTITY % ent-isodia + PUBLIC "-//W3C//ENTITIES Diacritical Marks for MathML 2.0//EN" + "isodia.ent" > + +<!-- + File isodia.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY acute "´" ><!--=acute accent --> +<!ENTITY breve "˘" ><!--=breve --> +<!ENTITY caron "ˇ" ><!--=caron --> +<!ENTITY cedil "¸" ><!--=cedilla --> +<!ENTITY circ "^" ><!--circumflex accent --> +<!ENTITY dblac "˝" ><!--=double acute accent --> +<!ENTITY die "¨" ><!--=dieresis --> +<!ENTITY dot "˙" ><!--=dot above --> +<!ENTITY grave "`" ><!--=grave accent --> +<!ENTITY macr "¯" ><!--=macron --> +<!ENTITY ogon "˛" ><!--=ogonek --> +<!ENTITY ring "˚" ><!--=ring --> +<!ENTITY tilde "˜" ><!--=tilde --> +<!ENTITY uml "¨" ><!--=umlaut mark --> + + +<!ENTITY % ent-isolat1 + PUBLIC "-//W3C//ENTITIES Added Latin 1 for MathML 2.0//EN" + "isolat1.ent" > + +<!-- + File isolat1.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY aacute "á" ><!--=small a, acute accent --> +<!ENTITY Aacute "Á" ><!--=capital A, acute accent --> +<!ENTITY acirc "â" ><!--=small a, circumflex accent --> +<!ENTITY Acirc "Â" ><!--=capital A, circumflex accent --> +<!ENTITY aelig "æ" ><!--=small ae diphthong (ligature) --> +<!ENTITY AElig "Æ" ><!--=capital AE diphthong (ligature) --> +<!ENTITY agrave "à" ><!--=small a, grave accent --> +<!ENTITY Agrave "À" ><!--=capital A, grave accent --> +<!ENTITY aring "å" ><!--=small a, ring --> +<!ENTITY Aring "Å" ><!--=capital A, ring --> +<!ENTITY atilde "ã" ><!--=small a, tilde --> +<!ENTITY Atilde "Ã" ><!--=capital A, tilde --> +<!ENTITY auml "ä" ><!--=small a, dieresis or umlaut mark --> +<!ENTITY Auml "Ä" ><!--=capital A, dieresis or umlaut mark --> +<!ENTITY ccedil "ç" ><!--=small c, cedilla --> +<!ENTITY Ccedil "Ç" ><!--=capital C, cedilla --> +<!ENTITY eacute "é" ><!--=small e, acute accent --> +<!ENTITY Eacute "É" ><!--=capital E, acute accent --> +<!ENTITY ecirc "ê" ><!--=small e, circumflex accent --> +<!ENTITY Ecirc "Ê" ><!--=capital E, circumflex accent --> +<!ENTITY egrave "è" ><!--=small e, grave accent --> +<!ENTITY Egrave "È" ><!--=capital E, grave accent --> +<!ENTITY eth "ð" ><!--=small eth, Icelandic --> +<!ENTITY ETH "Ð" ><!--=capital Eth, Icelandic --> +<!ENTITY euml "ë" ><!--=small e, dieresis or umlaut mark --> +<!ENTITY Euml "Ë" ><!--=capital E, dieresis or umlaut mark --> +<!ENTITY iacute "í" ><!--=small i, acute accent --> +<!ENTITY Iacute "Í" ><!--=capital I, acute accent --> +<!ENTITY icirc "î" ><!--=small i, circumflex accent --> +<!ENTITY Icirc "Î" ><!--=capital I, circumflex accent --> +<!ENTITY igrave "ì" ><!--=small i, grave accent --> +<!ENTITY Igrave "Ì" ><!--=capital I, grave accent --> +<!ENTITY iuml "ï" ><!--=small i, dieresis or umlaut mark --> +<!ENTITY Iuml "Ï" ><!--=capital I, dieresis or umlaut mark --> +<!ENTITY ntilde "ñ" ><!--=small n, tilde --> +<!ENTITY Ntilde "Ñ" ><!--=capital N, tilde --> +<!ENTITY oacute "ó" ><!--=small o, acute accent --> +<!ENTITY Oacute "Ó" ><!--=capital O, acute accent --> +<!ENTITY ocirc "ô" ><!--=small o, circumflex accent --> +<!ENTITY Ocirc "Ô" ><!--=capital O, circumflex accent --> +<!ENTITY ograve "ò" ><!--=small o, grave accent --> +<!ENTITY Ograve "Ò" ><!--=capital O, grave accent --> +<!ENTITY oslash "ø" ><!--latin small letter o with stroke --> +<!ENTITY Oslash "Ø" ><!--=capital O, slash --> +<!ENTITY otilde "õ" ><!--=small o, tilde --> +<!ENTITY Otilde "Õ" ><!--=capital O, tilde --> +<!ENTITY ouml "ö" ><!--=small o, dieresis or umlaut mark --> +<!ENTITY Ouml "Ö" ><!--=capital O, dieresis or umlaut mark --> +<!ENTITY szlig "ß" ><!--=small sharp s, German (sz ligature) --> +<!ENTITY thorn "þ" ><!--=small thorn, Icelandic --> +<!ENTITY THORN "Þ" ><!--=capital THORN, Icelandic --> +<!ENTITY uacute "ú" ><!--=small u, acute accent --> +<!ENTITY Uacute "Ú" ><!--=capital U, acute accent --> +<!ENTITY ucirc "û" ><!--=small u, circumflex accent --> +<!ENTITY Ucirc "Û" ><!--=capital U, circumflex accent --> +<!ENTITY ugrave "ù" ><!--=small u, grave accent --> +<!ENTITY Ugrave "Ù" ><!--=capital U, grave accent --> +<!ENTITY uuml "ü" ><!--=small u, dieresis or umlaut mark --> +<!ENTITY Uuml "Ü" ><!--=capital U, dieresis or umlaut mark --> +<!ENTITY yacute "ý" ><!--=small y, acute accent --> +<!ENTITY Yacute "Ý" ><!--=capital Y, acute accent --> +<!ENTITY yuml "ÿ" ><!--=small y, dieresis or umlaut mark --> + + +<!ENTITY % ent-isolat2 + PUBLIC "-//W3C//ENTITIES Added Latin 2 for MathML 2.0//EN" + "isolat2.ent" > + +<!-- + File isolat2.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY abreve "ă" ><!--=small a, breve --> +<!ENTITY Abreve "Ă" ><!--=capital A, breve --> +<!ENTITY amacr "ā" ><!--=small a, macron --> +<!ENTITY Amacr "Ā" ><!--=capital A, macron --> +<!ENTITY aogon "ą" ><!--=small a, ogonek --> +<!ENTITY Aogon "Ą" ><!--=capital A, ogonek --> +<!ENTITY cacute "ć" ><!--=small c, acute accent --> +<!ENTITY Cacute "Ć" ><!--=capital C, acute accent --> +<!ENTITY ccaron "č" ><!--=small c, caron --> +<!ENTITY Ccaron "Č" ><!--=capital C, caron --> +<!ENTITY ccirc "ĉ" ><!--=small c, circumflex accent --> +<!ENTITY Ccirc "Ĉ" ><!--=capital C, circumflex accent --> +<!ENTITY cdot "ċ" ><!--=small c, dot above --> +<!ENTITY Cdot "Ċ" ><!--=capital C, dot above --> +<!ENTITY dcaron "ď" ><!--=small d, caron --> +<!ENTITY Dcaron "Ď" ><!--=capital D, caron --> +<!ENTITY dstrok "đ" ><!--=small d, stroke --> +<!ENTITY Dstrok "Đ" ><!--=capital D, stroke --> +<!ENTITY ecaron "ě" ><!--=small e, caron --> +<!ENTITY Ecaron "Ě" ><!--=capital E, caron --> +<!ENTITY edot "ė" ><!--=small e, dot above --> +<!ENTITY Edot "Ė" ><!--=capital E, dot above --> +<!ENTITY emacr "ē" ><!--=small e, macron --> +<!ENTITY Emacr "Ē" ><!--=capital E, macron --> +<!ENTITY eng "ŋ" ><!--=small eng, Lapp --> +<!ENTITY ENG "Ŋ" ><!--=capital ENG, Lapp --> +<!ENTITY eogon "ę" ><!--=small e, ogonek --> +<!ENTITY Eogon "Ę" ><!--=capital E, ogonek --> +<!ENTITY gacute "ǵ" ><!--=small g, acute accent --> +<!ENTITY gbreve "ğ" ><!--=small g, breve --> +<!ENTITY Gbreve "Ğ" ><!--=capital G, breve --> +<!ENTITY Gcedil "Ģ" ><!--=capital G, cedilla --> +<!ENTITY gcirc "ĝ" ><!--=small g, circumflex accent --> +<!ENTITY Gcirc "Ĝ" ><!--=capital G, circumflex accent --> +<!ENTITY gdot "ġ" ><!--=small g, dot above --> +<!ENTITY Gdot "Ġ" ><!--=capital G, dot above --> +<!ENTITY hcirc "ĥ" ><!--=small h, circumflex accent --> +<!ENTITY Hcirc "Ĥ" ><!--=capital H, circumflex accent --> +<!ENTITY hstrok "ħ" ><!--=small h, stroke --> +<!ENTITY Hstrok "Ħ" ><!--=capital H, stroke --> +<!ENTITY Idot "İ" ><!--=capital I, dot above --> +<!ENTITY ijlig "ij" ><!--=small ij ligature --> +<!ENTITY IJlig "IJ" ><!--=capital IJ ligature --> +<!ENTITY imacr "ī" ><!--=small i, macron --> +<!ENTITY Imacr "Ī" ><!--=capital I, macron --> +<!ENTITY inodot "ı" ><!--=small i without dot --> +<!ENTITY iogon "į" ><!--=small i, ogonek --> +<!ENTITY Iogon "Į" ><!--=capital I, ogonek --> +<!ENTITY itilde "ĩ" ><!--=small i, tilde --> +<!ENTITY Itilde "Ĩ" ><!--=capital I, tilde --> +<!ENTITY jcirc "ĵ" ><!--=small j, circumflex accent --> +<!ENTITY Jcirc "Ĵ" ><!--=capital J, circumflex accent --> +<!ENTITY kcedil "ķ" ><!--=small k, cedilla --> +<!ENTITY Kcedil "Ķ" ><!--=capital K, cedilla --> +<!ENTITY kgreen "ĸ" ><!--=small k, Greenlandic --> +<!ENTITY lacute "ĺ" ><!--=small l, acute accent --> +<!ENTITY Lacute "Ĺ" ><!--=capital L, acute accent --> +<!ENTITY lcaron "ľ" ><!--=small l, caron --> +<!ENTITY Lcaron "Ľ" ><!--=capital L, caron --> +<!ENTITY lcedil "ļ" ><!--=small l, cedilla --> +<!ENTITY Lcedil "Ļ" ><!--=capital L, cedilla --> +<!ENTITY lmidot "ŀ" ><!--=small l, middle dot --> +<!ENTITY Lmidot "Ŀ" ><!--=capital L, middle dot --> +<!ENTITY lstrok "ł" ><!--=small l, stroke --> +<!ENTITY Lstrok "Ł" ><!--=capital L, stroke --> +<!ENTITY nacute "ń" ><!--=small n, acute accent --> +<!ENTITY Nacute "Ń" ><!--=capital N, acute accent --> +<!ENTITY napos "ʼn" ><!--=small n, apostrophe --> +<!ENTITY ncaron "ň" ><!--=small n, caron --> +<!ENTITY Ncaron "Ň" ><!--=capital N, caron --> +<!ENTITY ncedil "ņ" ><!--=small n, cedilla --> +<!ENTITY Ncedil "Ņ" ><!--=capital N, cedilla --> +<!ENTITY odblac "ő" ><!--=small o, double acute accent --> +<!ENTITY Odblac "Ő" ><!--=capital O, double acute accent --> +<!ENTITY oelig "œ" ><!--=small oe ligature --> +<!ENTITY OElig "Œ" ><!--=capital OE ligature --> +<!ENTITY omacr "ō" ><!--=small o, macron --> +<!ENTITY Omacr "Ō" ><!--=capital O, macron --> +<!ENTITY racute "ŕ" ><!--=small r, acute accent --> +<!ENTITY Racute "Ŕ" ><!--=capital R, acute accent --> +<!ENTITY rcaron "ř" ><!--=small r, caron --> +<!ENTITY Rcaron "Ř" ><!--=capital R, caron --> +<!ENTITY rcedil "ŗ" ><!--=small r, cedilla --> +<!ENTITY Rcedil "Ŗ" ><!--=capital R, cedilla --> +<!ENTITY sacute "ś" ><!--=small s, acute accent --> +<!ENTITY Sacute "Ś" ><!--=capital S, acute accent --> +<!ENTITY scaron "š" ><!--=small s, caron --> +<!ENTITY Scaron "Š" ><!--=capital S, caron --> +<!ENTITY scedil "ş" ><!--=small s, cedilla --> +<!ENTITY Scedil "Ş" ><!--=capital S, cedilla --> +<!ENTITY scirc "ŝ" ><!--=small s, circumflex accent --> +<!ENTITY Scirc "Ŝ" ><!--=capital S, circumflex accent --> +<!ENTITY tcaron "ť" ><!--=small t, caron --> +<!ENTITY Tcaron "Ť" ><!--=capital T, caron --> +<!ENTITY tcedil "ţ" ><!--=small t, cedilla --> +<!ENTITY Tcedil "Ţ" ><!--=capital T, cedilla --> +<!ENTITY tstrok "ŧ" ><!--=small t, stroke --> +<!ENTITY Tstrok "Ŧ" ><!--=capital T, stroke --> +<!ENTITY ubreve "ŭ" ><!--=small u, breve --> +<!ENTITY Ubreve "Ŭ" ><!--=capital U, breve --> +<!ENTITY udblac "ű" ><!--=small u, double acute accent --> +<!ENTITY Udblac "Ű" ><!--=capital U, double acute accent --> +<!ENTITY umacr "ū" ><!--=small u, macron --> +<!ENTITY Umacr "Ū" ><!--=capital U, macron --> +<!ENTITY uogon "ų" ><!--=small u, ogonek --> +<!ENTITY Uogon "Ų" ><!--=capital U, ogonek --> +<!ENTITY uring "ů" ><!--=small u, ring --> +<!ENTITY Uring "Ů" ><!--=capital U, ring --> +<!ENTITY utilde "ũ" ><!--=small u, tilde --> +<!ENTITY Utilde "Ũ" ><!--=capital U, tilde --> +<!ENTITY wcirc "ŵ" ><!--=small w, circumflex accent --> +<!ENTITY Wcirc "Ŵ" ><!--=capital W, circumflex accent --> +<!ENTITY ycirc "ŷ" ><!--=small y, circumflex accent --> +<!ENTITY Ycirc "Ŷ" ><!--=capital Y, circumflex accent --> +<!ENTITY Yuml "Ÿ" ><!--=capital Y, dieresis or umlaut mark --> +<!ENTITY zacute "ź" ><!--=small z, acute accent --> +<!ENTITY Zacute "Ź" ><!--=capital Z, acute accent --> +<!ENTITY zcaron "ž" ><!--=small z, caron --> +<!ENTITY Zcaron "Ž" ><!--=capital Z, caron --> +<!ENTITY zdot "ż" ><!--=small z, dot above --> +<!ENTITY Zdot "Ż" ><!--=capital Z, dot above --> + + +<!ENTITY % ent-isonum + PUBLIC "-//W3C//ENTITIES Numeric and Special Graphic for MathML 2.0//EN" + "isonum.ent" > + +<!-- + File isonum.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY amp "&&" ><!--=ampersand --> +<!ENTITY apos "'" ><!--=apostrophe --> +<!ENTITY ast "*" ><!--/ast B: =asterisk --> +<!ENTITY brvbar "¦" ><!--=broken (vertical) bar --> +<!ENTITY bsol "\" ><!--/backslash =reverse solidus --> +<!ENTITY cent "¢" ><!--=cent sign --> +<!ENTITY colon ":" ><!--/colon P: --> +<!ENTITY comma "," ><!--P: =comma --> +<!ENTITY commat "@" ><!--=commercial at --> +<!ENTITY copy "©" ><!--=copyright sign --> +<!ENTITY curren "¤" ><!--=general currency sign --> +<!ENTITY darr "↓" ><!--/downarrow A: =downward arrow --> +<!ENTITY deg "°" ><!--=degree sign --> +<!ENTITY divide "÷" ><!--/div B: =divide sign --> +<!ENTITY dollar "$" ><!--=dollar sign --> +<!ENTITY equals "=" ><!--=equals sign R: --> +<!ENTITY excl "!" ><!--=exclamation mark --> +<!ENTITY frac12 "½" ><!--=fraction one-half --> +<!ENTITY frac14 "¼" ><!--=fraction one-quarter --> +<!ENTITY frac18 "⅛" ><!--=fraction one-eighth --> +<!ENTITY frac34 "¾" ><!--=fraction three-quarters --> +<!ENTITY frac38 "⅜" ><!--=fraction three-eighths --> +<!ENTITY frac58 "⅝" ><!--=fraction five-eighths --> +<!ENTITY frac78 "⅞" ><!--=fraction seven-eighths --> +<!ENTITY gt ">" ><!--=greater-than sign R: --> +<!ENTITY half "½" ><!--=fraction one-half --> +<!ENTITY horbar "―" ><!--=horizontal bar --> +<!ENTITY hyphen "‐" ><!--=hyphen --> +<!ENTITY iexcl "¡" ><!--=inverted exclamation mark --> +<!ENTITY iquest "¿" ><!--=inverted question mark --> +<!ENTITY laquo "«" ><!--=angle quotation mark, left --> +<!ENTITY larr "←" ><!--/leftarrow /gets A: =leftward arrow --> +<!ENTITY lcub "{" ><!--/lbrace O: =left curly bracket --> +<!ENTITY ldquo "“" ><!--=double quotation mark, left --> +<!ENTITY lowbar "_" ><!--=low line --> +<!ENTITY lpar "(" ><!--O: =left parenthesis --> +<!ENTITY lsqb "[" ><!--/lbrack O: =left square bracket --> +<!ENTITY lsquo "‘" ><!--=single quotation mark, left --> +<!ENTITY lt "&<" ><!--=less-than sign R: --> +<!ENTITY micro "µ" ><!--=micro sign --> +<!ENTITY middot "·" ><!--/centerdot B: =middle dot --> +<!ENTITY nbsp " " ><!--=no break (required) space --> +<!ENTITY not "¬" ><!--/neg /lnot =not sign --> +<!ENTITY num "#" ><!--=number sign --> +<!ENTITY ohm "Ω" ><!--=ohm sign --> +<!ENTITY ordf "ª" ><!--=ordinal indicator, feminine --> +<!ENTITY ordm "º" ><!--=ordinal indicator, masculine --> +<!ENTITY para "¶" ><!--=pilcrow (paragraph sign) --> +<!ENTITY percnt "%" ><!--=percent sign --> +<!ENTITY period "." ><!--=full stop, period --> +<!ENTITY plus "+" ><!--=plus sign B: --> +<!ENTITY plusmn "±" ><!--/pm B: =plus-or-minus sign --> +<!ENTITY pound "£" ><!--=pound sign --> +<!ENTITY quest "?" ><!--=question mark --> +<!ENTITY quot """ ><!--=quotation mark --> +<!ENTITY raquo "»" ><!--=angle quotation mark, right --> +<!ENTITY rarr "→" ><!--/rightarrow /to A: =rightward arrow --> +<!ENTITY rcub "}" ><!--/rbrace C: =right curly bracket --> +<!ENTITY rdquo "”" ><!--=double quotation mark, right --> +<!ENTITY reg "®" ><!--/circledR =registered sign --> +<!ENTITY rpar ")" ><!--C: =right parenthesis --> +<!ENTITY rsqb "]" ><!--/rbrack C: =right square bracket --> +<!ENTITY rsquo "’" ><!--=single quotation mark, right --> +<!ENTITY sect "§" ><!--=section sign --> +<!ENTITY semi ";" ><!--=semicolon P: --> +<!ENTITY shy "­" ><!--=soft hyphen --> +<!ENTITY sol "/" ><!--=solidus --> +<!ENTITY sung "♪" ><!--=music note (sung text sign) --> +<!ENTITY sup1 "¹" ><!--=superscript one --> +<!ENTITY sup2 "²" ><!--=superscript two --> +<!ENTITY sup3 "³" ><!--=superscript three --> +<!ENTITY times "×" ><!--/times B: =multiply sign --> +<!ENTITY trade "™" ><!--=trade mark sign --> +<!ENTITY uarr "↑" ><!--/uparrow A: =upward arrow --> +<!ENTITY verbar "|" ><!--/vert =vertical bar --> +<!ENTITY yen "¥" ><!--/yen =yen sign --> + + +<!ENTITY % ent-isopub + PUBLIC "-//W3C//ENTITIES Publishing for MathML 2.0//EN" + "isopub.ent" > + +<!-- + File isopub.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY blank "␣" ><!--=significant blank symbol --> +<!ENTITY blk12 "▒" ><!--=50% shaded block --> +<!ENTITY blk14 "░" ><!--=25% shaded block --> +<!ENTITY blk34 "▓" ><!--=75% shaded block --> +<!ENTITY block "█" ><!--=full block --> +<!ENTITY bull "•" ><!--/bullet B: =round bullet, filled --> +<!ENTITY caret "⁁" ><!--=caret (insertion mark) --> +<!ENTITY check "✓" ><!--/checkmark =tick, check mark --> +<!ENTITY cir "○" ><!--/circ B: =circle, open --> +<!ENTITY clubs "♣" ><!--/clubsuit =club suit symbol --> +<!ENTITY copysr "℗" ><!--=sound recording copyright sign --> +<!ENTITY cross "✗" ><!--=ballot cross --> +<!ENTITY dagger "†" ><!--/dagger B: =dagger --> +<!ENTITY Dagger "‡" ><!--/ddagger B: =double dagger --> +<!ENTITY dash "‐" ><!--=hyphen (true graphic) --> +<!ENTITY diams "♦" ><!--/diamondsuit =diamond suit symbol --> +<!ENTITY dlcrop "⌍" ><!--downward left crop mark --> +<!ENTITY drcrop "⌌" ><!--downward right crop mark --> +<!ENTITY dtri "▿" ><!--/triangledown =down triangle, open --> +<!ENTITY dtrif "▾" ><!--/blacktriangledown =dn tri, filled --> +<!ENTITY emsp " " ><!--=em space --> +<!ENTITY emsp13 " " ><!--=1/3-em space --> +<!ENTITY emsp14 " " ><!--=1/4-em space --> +<!ENTITY ensp " " ><!--=en space (1/2-em) --> +<!ENTITY female "♀" ><!--=female symbol --> +<!ENTITY ffilig "ffi" ><!--small ffi ligature --> +<!ENTITY fflig "ff" ><!--small ff ligature --> +<!ENTITY ffllig "ffl" ><!--small ffl ligature --> +<!ENTITY filig "fi" ><!--small fi ligature --> +<!ENTITY flat "♭" ><!--/flat =musical flat --> +<!ENTITY fllig "fl" ><!--small fl ligature --> +<!ENTITY frac13 "⅓" ><!--=fraction one-third --> +<!ENTITY frac15 "⅕" ><!--=fraction one-fifth --> +<!ENTITY frac16 "⅙" ><!--=fraction one-sixth --> +<!ENTITY frac23 "⅔" ><!--=fraction two-thirds --> +<!ENTITY frac25 "⅖" ><!--=fraction two-fifths --> +<!ENTITY frac35 "⅗" ><!--=fraction three-fifths --> +<!ENTITY frac45 "⅘" ><!--=fraction four-fifths --> +<!ENTITY frac56 "⅚" ><!--=fraction five-sixths --> +<!ENTITY hairsp " " ><!--=hair space --> +<!ENTITY hellip "…" ><!--=ellipsis (horizontal) --> +<!ENTITY hybull "⁃" ><!--rectangle, filled (hyphen bullet) --> +<!ENTITY incare "℅" ><!--=in-care-of symbol --> +<!ENTITY ldquor "„" ><!--=rising dbl quote, left (low) --> +<!ENTITY lhblk "▄" ><!--=lower half block --> +<!ENTITY loz "◊" ><!--/lozenge - lozenge or total mark --> +<!ENTITY lozf "⧫" ><!--/blacklozenge - lozenge, filled --> +<!ENTITY lsquor "‚" ><!--=rising single quote, left (low) --> +<!ENTITY ltri "◃" ><!--/triangleleft B: l triangle, open --> +<!ENTITY ltrif "◂" ><!--/blacktriangleleft R: =l tri, filled --> +<!ENTITY male "♂" ><!--=male symbol --> +<!ENTITY malt "✠" ><!--/maltese =maltese cross --> +<!ENTITY marker "▮" ><!--=histogram marker --> +<!ENTITY mdash "—" ><!--=em dash --> +<!ENTITY mldr "…" ><!--em leader --> +<!ENTITY natur "♮" ><!--/natural - music natural --> +<!ENTITY ndash "–" ><!--=en dash --> +<!ENTITY nldr "‥" ><!--=double baseline dot (en leader) --> +<!ENTITY numsp " " ><!--=digit space (width of a number) --> +<!ENTITY phone "☎" ><!--=telephone symbol --> +<!ENTITY puncsp " " ><!--=punctuation space (width of comma) --> +<!ENTITY rdquor "”" ><!--rising dbl quote, right (high) --> +<!ENTITY rect "▭" ><!--=rectangle, open --> +<!ENTITY rsquor "’" ><!--rising single quote, right (high) --> +<!ENTITY rtri "▹" ><!--/triangleright B: r triangle, open --> +<!ENTITY rtrif "▸" ><!--/blacktriangleright R: =r tri, filled --> +<!ENTITY rx "℞" ><!--pharmaceutical prescription (Rx) --> +<!ENTITY sext "✶" ><!--sextile (6-pointed star) --> +<!ENTITY sharp "♯" ><!--/sharp =musical sharp --> +<!ENTITY spades "♠" ><!--/spadesuit =spades suit symbol --> +<!ENTITY squ "□" ><!--=square, open --> +<!ENTITY squf "▪" ><!--/blacksquare =sq bullet, filled --> +<!ENTITY star "⋆" ><!--=star, open --> +<!ENTITY starf "★" ><!--/bigstar - star, filled --> +<!ENTITY target "⌖" ><!--register mark or target --> +<!ENTITY telrec "⌕" ><!--=telephone recorder symbol --> +<!ENTITY thinsp " " ><!--=thin space (1/6-em) --> +<!ENTITY uhblk "▀" ><!--=upper half block --> +<!ENTITY ulcrop "⌏" ><!--upward left crop mark --> +<!ENTITY urcrop "⌎" ><!--upward right crop mark --> +<!ENTITY utri "▵" ><!--/triangle =up triangle, open --> +<!ENTITY utrif "▴" ><!--/blacktriangle =up tri, filled --> +<!ENTITY vellip "⋮" ><!--vertical ellipsis --> + + +<!-- New characters defined by MathML ............................ --> + +<!ENTITY % ent-mmlextra + PUBLIC "-//W3C//ENTITIES Extra for MathML 2.0//EN" + "mmlextra.ent" > + +<!-- + File mmlextra.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + +--> + +<!ENTITY af "⁡" ><!--character showing function application in presentation tagging --> +<!ENTITY aopf "𝕒" ><!-- --> +<!ENTITY bopf "𝕓" ><!-- --> +<!ENTITY copf "𝕔" ><!-- --> +<!ENTITY Cross "⨯" ><!--cross or vector product --> +<!ENTITY dd "ⅆ" ><!--d for use in differentials, e.g., within integrals --> +<!ENTITY DD "ⅅ" ><!--D for use in differentials, e.g., within integrals --> +<!ENTITY dopf "𝕕" ><!-- --> +<!ENTITY DownArrowBar "⤓" ><!--down arrow to bar --> +<!ENTITY DownBreve "̑" ><!--breve, inverted (non-spacing) --> +<!ENTITY DownLeftRightVector "⥐" ><!--left-down-right-down harpoon --> +<!ENTITY DownLeftTeeVector "⥞" ><!--left-down harpoon from bar --> +<!ENTITY DownLeftVectorBar "⥖" ><!--left-down harpoon to bar --> +<!ENTITY DownRightTeeVector "⥟" ><!--right-down harpoon from bar --> +<!ENTITY DownRightVectorBar "⥗" ><!--right-down harpoon to bar --> +<!ENTITY ee "ⅇ" ><!--e use for the exponential base of the natural logarithms --> +<!ENTITY EmptySmallSquare "◽" ><!--empty small square --> +<!ENTITY EmptyVerySmallSquare "" ><!--empty small square --> +<!ENTITY eopf "𝕖" ><!-- --> +<!ENTITY Equal "⩵" ><!--two consecutive equal signs --> +<!ENTITY FilledSmallSquare "◾" ><!--filled small square --> +<!ENTITY FilledVerySmallSquare "" ><!--filled very small square --> +<!ENTITY fopf "𝕗" ><!-- --> +<!ENTITY gopf "𝕘" ><!-- --> +<!ENTITY GreaterGreater "⪢" ><!--alias for GT --> +<!ENTITY hopf "𝕙" ><!-- --> +<!ENTITY HorizontalLine "─" ><!--short horizontal line --> +<!ENTITY ic "​" ><!--short form of ⁣ --> +<!ENTITY ii "ⅈ" ><!--i for use as a square root of -1 --> +<!ENTITY iopf "𝕚" ><!-- --> +<!ENTITY it "⁢" ><!--marks multiplication when it is understood without a mark --> +<!ENTITY jopf "𝕛" ><!-- --> +<!ENTITY kopf "𝕜" ><!-- --> +<!ENTITY larrb "⇤" ><!--leftwards arrow to bar --> +<!ENTITY LeftDownTeeVector "⥡" ><!--down-left harpoon from bar --> +<!ENTITY LeftDownVectorBar "⥙" ><!--down-left harpoon to bar --> +<!ENTITY LeftRightVector "⥎" ><!--left-up-right-up harpoon --> +<!ENTITY LeftTeeVector "⥚" ><!--left-up harpoon from bar --> +<!ENTITY LeftTriangleBar "⧏" ><!--not left triangle, vertical bar --> +<!ENTITY LeftUpDownVector "⥑" ><!--up-left-down-left harpoon --> +<!ENTITY LeftUpTeeVector "⥠" ><!--up-left harpoon from bar --> +<!ENTITY LeftUpVectorBar "⥘" ><!--up-left harpoon to bar --> +<!ENTITY LeftVectorBar "⥒" ><!--left-up harpoon to bar --> +<!ENTITY LessLess "⪡" ><!--alias for Lt --> +<!ENTITY lopf "𝕝" ><!-- --> +<!ENTITY mapstodown "↧" ><!--downwards arrow from bar --> +<!ENTITY mapstoleft "↤" ><!--leftwards arrow from bar --> +<!ENTITY mapstoup "↥" ><!--upwards arrow from bar --> +<!ENTITY MediumSpace " " ><!--space of width 4/18 em --> +<!ENTITY mopf "𝕞" ><!-- --> +<!ENTITY nbump "≎̸" ><!--not bumpy equals --> +<!ENTITY nbumpe "≏̸" ><!--not bumpy single equals --> +<!ENTITY NegativeMediumSpace " ︀" ><!--space of width -4/18 em --> +<!ENTITY NegativeThickSpace " ︀" ><!--space of width -5/18 em --> +<!ENTITY NegativeThinSpace " ︀" ><!--space of width -3/18 em --> +<!ENTITY NegativeVeryThinSpace " ︀" ><!--space of width -1/18 em --> +<!ENTITY nesim "≂̸" ><!--not equal or similar --> +<!ENTITY NewLine "
" ><!--force a line break; line feed --> +<!ENTITY NoBreak "" ><!--never break line here --> +<!ENTITY nopf "𝕟" ><!-- --> +<!ENTITY NotCupCap "≭" ><!--alias for &nasymp; --> +<!ENTITY NotHumpEqual "≏̸" ><!--alias for ≏̸ --> +<!ENTITY NotLeftTriangleBar "⧏̸" ><!--not left triangle, vertical bar --> +<!ENTITY NotNestedGreaterGreater "⒢̸" ><!--not double greater-than sign --> +<!ENTITY NotNestedLessLess "⒡̸" ><!--not double less-than sign --> +<!ENTITY NotRightTriangleBar "⧐̸" ><!--not vertical bar, right triangle --> +<!ENTITY NotSquareSubset "⊏̸" ><!--square not subset --> +<!ENTITY NotSquareSuperset "⊐̸" ><!--negated set-like partial order operator --> +<!ENTITY NotSucceedsTilde "≿̸" ><!--not succeeds or similar --> +<!ENTITY oopf "𝕠" ><!-- --> +<!ENTITY OverBar "¯" ><!--over bar --> +<!ENTITY OverBrace "︷" ><!--over brace --> +<!ENTITY OverBracket "⎴" ><!--over bracket --> +<!ENTITY OverParenthesis "︵" ><!--over parenthesis --> +<!ENTITY planckh "ℎ" ><!--the ring (skew field) of quaternions --> +<!ENTITY popf "𝕡" ><!-- --> +<!ENTITY Product "∏" ><!--alias for &prod --> +<!ENTITY qopf "𝕢" ><!-- --> +<!ENTITY rarrb "⇥" ><!--leftwards arrow to bar --> +<!ENTITY RightDownTeeVector "⥝" ><!--down-right harpoon from bar --> +<!ENTITY RightDownVectorBar "⥕" ><!--down-right harpoon to bar --> +<!ENTITY RightTeeVector "⥛" ><!--right-up harpoon from bar --> +<!ENTITY RightTriangleBar "⧐" ><!--vertical bar, right triangle --> +<!ENTITY RightUpDownVector "⥏" ><!--up-right-down-right harpoon --> +<!ENTITY RightUpTeeVector "⥜" ><!--up-right harpoon from bar --> +<!ENTITY RightUpVectorBar "⥔" ><!--up-right harpoon to bar --> +<!ENTITY RightVectorBar "⥓" ><!--up-right harpoon to bar --> +<!ENTITY ropf "𝕣" ><!-- --> +<!ENTITY RoundImplies "⥰" ><!--round implies --> +<!ENTITY RuleDelayed "⧴" ><!--rule-delayed (colon right arrow) --> +<!ENTITY ShortDownArrow "⌄︀" ><!--short down arrow --> +<!ENTITY ShortUpArrow "⌃︀" ><!--short up arrow --> +<!ENTITY sopf "𝕤" ><!-- --> +<!ENTITY Tab "	" ><!--tabulator stop; horizontal tabulation --> +<!ENTITY ThickSpace "   " ><!--space of width 5/18 em --> +<!ENTITY topf "𝕥" ><!-- --> +<!ENTITY UnderBar "̲" ><!--combining low line --> +<!ENTITY UnderBrace "︸" ><!--under brace --> +<!ENTITY UnderBracket "⎵" ><!--under bracket --> +<!ENTITY UnderParenthesis "︶" ><!--under parenthesis --> +<!ENTITY uopf "𝕦" ><!-- --> +<!ENTITY UpArrowBar "⤒" ><!--up arrow to bar --> +<!ENTITY VerticalLine "|" ><!--alias ISONUM verbar --> +<!ENTITY VerticalSeparator "❘" ><!--vertical separating operator --> +<!ENTITY vopf "𝕧" ><!-- --> +<!ENTITY wopf "𝕨" ><!-- --> +<!ENTITY xopf "𝕩" ><!-- --> +<!ENTITY yopf "𝕪" ><!-- --> +<!ENTITY zopf "𝕫" ><!-- --> + + +<!-- MathML aliases for characters defined above ................. --> + +<!ENTITY % ent-mmlalias + PUBLIC "-//W3C//ENTITIES Aiases for MathML 2.0//EN" + "mmlalias.ent" > + +<!-- + File mmlalias.ent produced by the XSL script mmldtd.xsl + from input data in unicode.xml. + + Please report any errors to + David Carlisle <davidc@nag.co.uk>. + + The numeric character values assigned to each entity + (should) match either official Unicode assignments + or assignments provisionally allocated by the + Unicode Consortium based on the characters in the `STIX' + propsal for mathematics. Note that these assignments + have not been ratified by the corresponding ISO + committee and thus should be considered liable to + change. + +--> + +<!ENTITY angle "∠" ><!--alias ISOAMSO ang --> +<!ENTITY ApplyFunction "⁡" ><!--character showing function application in presentation tagging --> +<!ENTITY approx "≈" ><!--alias ISOTECH ap --> +<!ENTITY approxeq "≊" ><!--alias ISOAMSR ape --> +<!ENTITY Assign "≔" ><!--assignment operator, alias ISOAMSR colone --> +<!ENTITY backcong "≌" ><!--alias ISOAMSR bcong --> +<!ENTITY backepsilon "϶" ><!--alias ISOAMSR bepsi --> +<!ENTITY backprime "‵" ><!--alias ISOAMSO bprime --> +<!ENTITY backsim "∽" ><!--alias ISOAMSR bsim --> +<!ENTITY backsimeq "⋍" ><!--alias ISOAMSR bsime --> +<!ENTITY Backslash "∖" ><!--alias ISOAMSB setmn --> +<!ENTITY barwedge "⊼" ><!--alias ISOAMSB barwed --> +<!ENTITY because "∵" ><!--alias ISOTECH becaus --> +<!ENTITY Because "∵" ><!--alias ISOTECH becaus --> +<!ENTITY Bernoullis "ℬ" ><!--alias ISOTECH bernou --> +<!ENTITY between "≬" ><!--alias ISOAMSR twixt --> +<!ENTITY bigcap "⋂" ><!--alias ISOAMSB xcap --> +<!ENTITY bigcirc "◯" ><!--alias ISOAMSB xcirc --> +<!ENTITY bigcup "⋃" ><!--alias ISOAMSB xcup --> +<!ENTITY bigodot "⊙" ><!--alias ISOAMSB xodot --> +<!ENTITY bigoplus "⊕" ><!--alias ISOAMSB xoplus --> +<!ENTITY bigotimes "⊗" ><!--alias ISOAMSB xotime --> +<!ENTITY bigsqcup "⊔" ><!--alias ISOAMSB xsqcup --> +<!ENTITY bigstar "★" ><!--ISOPUB starf --> +<!ENTITY bigtriangledown "▽" ><!--alias ISOAMSB xdtri --> +<!ENTITY bigtriangleup "△" ><!--alias ISOAMSB xutri --> +<!ENTITY biguplus "⊎" ><!--alias ISOAMSB xuplus --> +<!ENTITY bigvee "⋁" ><!--alias ISOAMSB xvee --> +<!ENTITY bigwedge "⋀" ><!--alias ISOAMSB xwedge --> +<!ENTITY bkarow "⤍" ><!--alias ISOAMSA rbarr --> +<!ENTITY blacklozenge "⧫" ><!--alias ISOPUB lozf --> +<!ENTITY blacksquare "▪" ><!--ISOTECH squarf --> +<!ENTITY blacktriangle "▴" ><!--alias ISOPUB utrif --> +<!ENTITY blacktriangledown "▾" ><!--alias ISOPUB dtrif --> +<!ENTITY blacktriangleleft "◂" ><!--alias ISOPUB ltrif --> +<!ENTITY blacktriangleright "▸" ><!--alias ISOPUB rtrif --> +<!ENTITY bot "⊥" ><!--alias ISOTECH bottom --> +<!ENTITY boxminus "⊟" ><!--alias ISOAMSB minusb --> +<!ENTITY boxplus "⊞" ><!--alias ISOAMSB plusb --> +<!ENTITY boxtimes "⊠" ><!--alias ISOAMSB timesb --> +<!ENTITY Breve "˘" ><!--alias ISODIA breve --> +<!ENTITY bullet "•" ><!--alias ISOPUB bull --> +<!ENTITY bumpeq "≏" ><!--alias ISOAMSR bumpe --> +<!ENTITY Bumpeq "≎" ><!--alias ISOAMSR bump --> +<!ENTITY CapitalDifferentialD "ⅅ" ><!--D for use in differentials, e.g., within integrals --> +<!ENTITY Cayleys "ℭ" ><!--the non-associative ring of octonions or Cayley numbers --> +<!ENTITY Cedilla "¸" ><!--alias ISODIA cedil --> +<!ENTITY centerdot "·" ><!--alias ISONUM middot --> +<!ENTITY CenterDot "·" ><!--alias ISONUM middot --> +<!ENTITY checkmark "✓" ><!--alias ISOPUB check --> +<!ENTITY circeq "≗" ><!--alias ISOAMSR cire --> +<!ENTITY circlearrowleft "↺" ><!--alias ISOAMSA olarr --> +<!ENTITY circlearrowright "↻" ><!--alias ISOAMSA orarr --> +<!ENTITY circledast "⊛" ><!--alias ISOAMSB oast --> +<!ENTITY circledcirc "⊚" ><!--alias ISOAMSB ocir --> +<!ENTITY circleddash "⊝" ><!--alias ISOAMSB odash --> +<!ENTITY CircleDot "⊙" ><!--alias ISOAMSB odot --> +<!ENTITY circledR "®" ><!--alias ISONUM reg --> +<!ENTITY circledS "Ⓢ" ><!--alias ISOAMSO oS --> +<!ENTITY CircleMinus "⊖" ><!--alias ISOAMSB ominus --> +<!ENTITY CirclePlus "⊕" ><!--alias ISOAMSB oplus --> +<!ENTITY CircleTimes "⊗" ><!--alias ISOAMSB otimes --> +<!ENTITY ClockwiseContourIntegral "∲" ><!--alias ISOTECH cwconint --> +<!ENTITY CloseCurlyDoubleQuote "”" ><!--alias ISONUM rdquo --> +<!ENTITY CloseCurlyQuote "’" ><!--alias ISONUM rsquo --> +<!ENTITY clubsuit "♣" ><!--ISOPUB clubs --> +<!ENTITY coloneq "≔" ><!--alias ISOAMSR colone --> +<!ENTITY complement "∁" ><!--alias ISOAMSO comp --> +<!ENTITY complexes "ℂ" ><!--the field of complex numbers --> +<!ENTITY Congruent "≡" ><!--alias ISOTECH equiv --> +<!ENTITY ContourIntegral "∮" ><!--alias ISOTECH conint --> +<!ENTITY Coproduct "∐" ><!--alias ISOAMSB coprod --> +<!ENTITY CounterClockwiseContourIntegral "∳" ><!--alias ISOTECH awconint --> +<!ENTITY CupCap "≍" ><!--alias ISOAMSR asymp --> +<!ENTITY curlyeqprec "⋞" ><!--alias ISOAMSR cuepr --> +<!ENTITY curlyeqsucc "⋟" ><!--alias ISOAMSR cuesc --> +<!ENTITY curlyvee "⋎" ><!--alias ISOAMSB cuvee --> +<!ENTITY curlywedge "⋏" ><!--alias ISOAMSB cuwed --> +<!ENTITY curvearrowleft "↶" ><!--alias ISOAMSA cularr --> +<!ENTITY curvearrowright "↷" ><!--alias ISOAMSA curarr --> +<!ENTITY dbkarow "⤏" ><!--alias ISOAMSA rBarr --> +<!ENTITY ddagger "‡" ><!--alias ISOPUB Dagger --> +<!ENTITY ddotseq "⩷" ><!--alias ISOAMSR eDDot --> +<!ENTITY Del "∇" ><!--alias ISOTECH nabla --> +<!ENTITY DiacriticalAcute "´" ><!--alias ISODIA acute --> +<!ENTITY DiacriticalDot "˙" ><!--alias ISODIA dot --> +<!ENTITY DiacriticalDoubleAcute "˝" ><!--alias ISODIA dblac --> +<!ENTITY DiacriticalGrave "`" ><!--alias ISODIA grave --> +<!ENTITY DiacriticalTilde "˜" ><!--alias ISODIA tilde --> +<!ENTITY diamond "⋄" ><!--alias ISOAMSB diam --> +<!ENTITY Diamond "⋄" ><!--alias ISOAMSB diam --> +<!ENTITY diamondsuit "♦" ><!--ISOPUB diams --> +<!ENTITY DifferentialD "ⅆ" ><!--d for use in differentials, e.g., within integrals --> +<!ENTITY digamma "Ϝ" ><!--alias ISOGRK3 gammad --> +<!ENTITY div "÷" ><!--alias ISONUM divide --> +<!ENTITY divideontimes "⋇" ><!--alias ISOAMSB divonx --> +<!ENTITY doteq "≐" ><!--alias ISOAMSR esdot --> +<!ENTITY doteqdot "≑" ><!--alias ISOAMSR eDot --> +<!ENTITY DotEqual "≐" ><!--alias ISOAMSR esdot --> +<!ENTITY dotminus "∸" ><!--alias ISOAMSB minusd --> +<!ENTITY dotplus "∔" ><!--alias ISOAMSB plusdo --> +<!ENTITY dotsquare "⊡" ><!--alias ISOAMSB sdotb --> +<!ENTITY doublebarwedge "⌆" ><!--alias ISOAMSB Barwed --> +<!ENTITY DoubleContourIntegral "∯" ><!--alias ISOTECH Conint --> +<!ENTITY DoubleDot "¨" ><!--alias ISODIA die --> +<!ENTITY DoubleDownArrow "⇓" ><!--alias ISOAMSA dArr --> +<!ENTITY DoubleLeftArrow "⇐" ><!--alias ISOTECH lArr --> +<!ENTITY DoubleLeftRightArrow "⇔" ><!--alias ISOAMSA hArr --> +<!ENTITY DoubleLeftTee "⫤" ><!--alias for ⫤ --> +<!ENTITY DoubleLongLeftArrow "" ><!--alias ISOAMSA xlArr --> +<!ENTITY DoubleLongLeftRightArrow "" ><!--alias ISOAMSA xhArr --> +<!ENTITY DoubleLongRightArrow "" ><!--alias ISOAMSA xrArr --> +<!ENTITY DoubleRightArrow "⇒" ><!--alias ISOTECH rArr --> +<!ENTITY DoubleRightTee "⊨" ><!--alias ISOAMSR vDash --> +<!ENTITY DoubleUpArrow "⇑" ><!--alias ISOAMSA uArr --> +<!ENTITY DoubleUpDownArrow "⇕" ><!--alias ISOAMSA vArr --> +<!ENTITY DoubleVerticalBar "∥" ><!--alias ISOTECH par --> +<!ENTITY downarrow "↓" ><!--alias ISONUM darr --> +<!ENTITY Downarrow "⇓" ><!--alias ISOAMSA dArr --> +<!ENTITY DownArrow "↓" ><!--alias ISONUM darr --> +<!ENTITY DownArrowUpArrow "⇵" ><!--alias ISOAMSA duarr --> +<!ENTITY downdownarrows "⇊" ><!--alias ISOAMSA ddarr --> +<!ENTITY downharpoonleft "⇃" ><!--alias ISOAMSA dharl --> +<!ENTITY downharpoonright "⇂" ><!--alias ISOAMSA dharr --> +<!ENTITY DownLeftVector "↽" ><!--alias ISOAMSA lhard --> +<!ENTITY DownRightVector "⇁" ><!--alias ISOAMSA rhard --> +<!ENTITY DownTee "⊤" ><!--alias ISOTECH top --> +<!ENTITY DownTeeArrow "↧" ><!--alias for mapstodown --> +<!ENTITY drbkarow "⤐" ><!--alias ISOAMSA RBarr --> +<!ENTITY Element "∈" ><!--alias ISOTECH isinv --> +<!ENTITY emptyset "∅︀" ><!--alias ISOAMSO empty --> +<!ENTITY eqcirc "≖" ><!--alias ISOAMSR ecir --> +<!ENTITY eqcolon "≕" ><!--alias ISOAMSR ecolon --> +<!ENTITY eqsim "≂" ><!--alias ISOAMSR esim --> +<!ENTITY eqslantgtr "⋝" ><!--alias ISOAMSR egs --> +<!ENTITY eqslantless "⋜" ><!--alias ISOAMSR els --> +<!ENTITY EqualTilde "≂" ><!--alias ISOAMSR esim --> +<!ENTITY Equilibrium "⇌" ><!--alias ISOAMSA rlhar --> +<!ENTITY Exists "∃" ><!--alias ISOTECH exist --> +<!ENTITY expectation "ℰ" ><!--expectation (operator) --> +<!ENTITY exponentiale "ⅇ" ><!--base of the Napierian logarithms --> +<!ENTITY ExponentialE "ⅇ" ><!--e use for the exponential base of the natural logarithms --> +<!ENTITY fallingdotseq "≒" ><!--alias ISOAMSR efDot --> +<!ENTITY ForAll "∀" ><!--alias ISOTECH forall --> +<!ENTITY Fouriertrf "ℱ" ><!--Fourier transform --> +<!ENTITY geq "≥" ><!--alias ISOTECH ge --> +<!ENTITY geqq "≧" ><!--alias ISOAMSR gE --> +<!ENTITY geqslant "⩾" ><!--alias ISOAMSR ges --> +<!ENTITY gg "≫" ><!--alias ISOAMSR Gt --> +<!ENTITY ggg "⋙" ><!--alias ISOAMSR Gg --> +<!ENTITY gnapprox "⪊" ><!--alias ISOAMSN gnap --> +<!ENTITY gneq "≩" ><!--alias ISOAMSN gne --> +<!ENTITY gneqq "≩" ><!--alias ISOAMSN gnE --> +<!ENTITY GreaterEqual "≥" ><!--alias ISOTECH ge --> +<!ENTITY GreaterEqualLess "⋛" ><!--alias ISOAMSR gel --> +<!ENTITY GreaterFullEqual "≧" ><!--alias ISOAMSR gE --> +<!ENTITY GreaterLess "≷" ><!--alias ISOAMSR gl --> +<!ENTITY GreaterSlantEqual "⩾" ><!--alias ISOAMSR ges --> +<!ENTITY GreaterTilde "≳" ><!--alias ISOAMSR gsim --> +<!ENTITY gtrapprox "≳" ><!--alias ISOAMSR gap --> +<!ENTITY gtrdot "⋗" ><!--alias ISOAMSR gtdot --> +<!ENTITY gtreqless "⋛" ><!--alias ISOAMSR gel --> +<!ENTITY gtreqqless "⋛" ><!--alias ISOAMSR gEl --> +<!ENTITY gtrless "≷" ><!--alias ISOAMSR gl --> +<!ENTITY gtrsim "≳" ><!--alias ISOAMSR gsim --> +<!ENTITY gvertneqq "≩︀" ><!--alias ISOAMSN gvnE --> +<!ENTITY Hacek "ˇ" ><!--alias ISODIA caron --> +<!ENTITY Hat "̂" ><!--circumflex accent (circ in ISODIA) --> +<!ENTITY hbar "ℏ︀" ><!--alias ISOAMSO plank --> +<!ENTITY heartsuit "♡" ><!--ISOPUB hearts --> +<!ENTITY HilbertSpace "ℋ" ><!--Hilbert space --> +<!ENTITY hksearow "⤥" ><!--alias ISOAMSA searhk --> +<!ENTITY hkswarow "⤦" ><!--alias ISOAMSA swarhk --> +<!ENTITY hookleftarrow "↩" ><!--alias ISOAMSA larrhk --> +<!ENTITY hookrightarrow "↪" ><!--alias ISOAMSA rarrhk --> +<!ENTITY hslash "ℏ" ><!--alias ISOAMSO plankv --> +<!ENTITY HumpDownHump "≎" ><!--alias ISOAMSR bump --> +<!ENTITY HumpEqual "≏" ><!--alias ISOAMSR bumpe --> +<!ENTITY iiiint "⨌" ><!--alias ISOTECH qint --> +<!ENTITY iiint "∭" ><!--alias ISOTECH tint --> +<!ENTITY Im "ℑ" ><!--alias ISOAMSO image --> +<!ENTITY ImaginaryI "ⅈ" ><!--i for use as a square root of -1 --> +<!ENTITY imagline "ℐ" ><!--the geometric imaginary line --> +<!ENTITY imagpart "ℑ" ><!--alias ISOAMSO image --> +<!ENTITY Implies "⇒" ><!--alias ISOTECH rArr --> +<!ENTITY in "∈" ><!--ISOTECH isin --> +<!ENTITY integers "ℤ" ><!--the ring of integers --> +<!ENTITY Integral "∫" ><!--alias ISOTECH int --> +<!ENTITY intercal "⊺" ><!--alias ISOAMSB intcal --> +<!ENTITY Intersection "⋂" ><!--alias ISOAMSB xcap --> +<!ENTITY intprod "⨼" ><!--alias ISOAMSB iprod --> +<!ENTITY InvisibleComma "​" ><!--used as a separator, e.g., in indices --> +<!ENTITY InvisibleTimes "⁢" ><!--marks multiplication when it is understood without a mark --> +<!ENTITY langle "〈" ><!--alias ISOTECH lang --> +<!ENTITY Laplacetrf "ℒ" ><!--Laplace transform --> +<!ENTITY lbrace "{" ><!--alias ISONUM lcub --> +<!ENTITY lbrack "[" ><!--alias ISONUM lsqb --> +<!ENTITY LeftAngleBracket "〈" ><!--alias ISOTECH lang --> +<!ENTITY leftarrow "←" ><!--alias ISONUM larr --> +<!ENTITY Leftarrow "⇐" ><!--alias ISOTECH lArr --> +<!ENTITY LeftArrow "←" ><!--alias ISONUM larr --> +<!ENTITY LeftArrowBar "⇤" ><!--alias for larrb --> +<!ENTITY LeftArrowRightArrow "⇆" ><!--alias ISOAMSA lrarr --> +<!ENTITY leftarrowtail "↢" ><!--alias ISOAMSA larrtl --> +<!ENTITY LeftCeiling "⌈" ><!--alias ISOAMSC lceil --> +<!ENTITY LeftDoubleBracket "〚" ><!--left double bracket delimiter --> +<!ENTITY LeftDownVector "⇃" ><!--alias ISOAMSA dharl --> +<!ENTITY LeftFloor "⌊" ><!--alias ISOAMSC lfloor --> +<!ENTITY leftharpoondown "↽" ><!--alias ISOAMSA lhard --> +<!ENTITY leftharpoonup "↼" ><!--alias ISOAMSA lharu --> +<!ENTITY leftleftarrows "⇇" ><!--alias ISOAMSA llarr --> +<!ENTITY leftrightarrow "↔" ><!--alias ISOAMSA harr --> +<!ENTITY Leftrightarrow "⇔" ><!--alias ISOAMSA hArr --> +<!ENTITY LeftRightArrow "↔" ><!--alias ISOAMSA harr --> +<!ENTITY leftrightarrows "⇆" ><!--alias ISOAMSA lrarr --> +<!ENTITY leftrightharpoons "⇋" ><!--alias ISOAMSA lrhar --> +<!ENTITY leftrightsquigarrow "↭" ><!--alias ISOAMSA harrw --> +<!ENTITY LeftTee "⊣" ><!--alias ISOAMSR dashv --> +<!ENTITY LeftTeeArrow "↤" ><!--alias for mapstoleft --> +<!ENTITY leftthreetimes "⋋" ><!--alias ISOAMSB lthree --> +<!ENTITY LeftTriangle "⊲" ><!--alias ISOAMSR vltri --> +<!ENTITY LeftTriangleEqual "⊴" ><!--alias ISOAMSR ltrie --> +<!ENTITY LeftUpVector "↿" ><!--alias ISOAMSA uharl --> +<!ENTITY LeftVector "↼" ><!--alias ISOAMSA lharu --> +<!ENTITY leq "≤" ><!--alias ISOTECH le --> +<!ENTITY leqq "≦" ><!--alias ISOAMSR lE --> +<!ENTITY leqslant "⩽" ><!--alias ISOAMSR les --> +<!ENTITY lessapprox "≲" ><!--alias ISOAMSR lap --> +<!ENTITY lessdot "⋖" ><!--alias ISOAMSR ltdot --> +<!ENTITY lesseqgtr "⋚" ><!--alias ISOAMSR leg --> +<!ENTITY lesseqqgtr "⋚" ><!--alias ISOAMSR lEg --> +<!ENTITY LessEqualGreater "⋚" ><!--alias ISOAMSR leg --> +<!ENTITY LessFullEqual "≦" ><!--alias ISOAMSR lE --> +<!ENTITY LessGreater "≶" ><!--alias ISOAMSR lg --> +<!ENTITY lessgtr "≶" ><!--alias ISOAMSR lg --> +<!ENTITY lesssim "≲" ><!--alias ISOAMSR lsim --> +<!ENTITY LessSlantEqual "⩽" ><!--alias ISOAMSR les --> +<!ENTITY LessTilde "≲" ><!--alias ISOAMSR lsim --> +<!ENTITY ll "≪" ><!--alias ISOAMSR Lt --> +<!ENTITY llcorner "⌞" ><!--alias ISOAMSC dlcorn --> +<!ENTITY Lleftarrow "⇚" ><!--alias ISOAMSA lAarr --> +<!ENTITY lmoustache "⎰" ><!--alias ISOAMSC lmoust --> +<!ENTITY lnapprox "⪉" ><!--alias ISOAMSN lnap --> +<!ENTITY lneq "≨" ><!--alias ISOAMSN lne --> +<!ENTITY lneqq "≨" ><!--alias ISOAMSN lnE --> +<!ENTITY longleftarrow "" ><!--alias ISOAMSA xlarr --> +<!ENTITY Longleftarrow "" ><!--alias ISOAMSA xlArr --> +<!ENTITY LongLeftArrow "" ><!--alias ISOAMSA xlarr --> +<!ENTITY longleftrightarrow "" ><!--alias ISOAMSA xharr --> +<!ENTITY Longleftrightarrow "" ><!--alias ISOAMSA xhArr --> +<!ENTITY LongLeftRightArrow "" ><!--alias ISOAMSA xharr --> +<!ENTITY longmapsto "" ><!--alias ISOAMSA xmap --> +<!ENTITY longrightarrow "" ><!--alias ISOAMSA xrarr --> +<!ENTITY Longrightarrow "" ><!--alias ISOAMSA xrArr --> +<!ENTITY LongRightArrow "" ><!--alias ISOAMSA xrarr --> +<!ENTITY looparrowleft "↫" ><!--alias ISOAMSA larrlp --> +<!ENTITY looparrowright "↬" ><!--alias ISOAMSA rarrlp --> +<!ENTITY LowerLeftArrow "↙" ><!--alias ISOAMSA swarr --> +<!ENTITY LowerRightArrow "↘" ><!--alias ISOAMSA searr --> +<!ENTITY lozenge "◊" ><!--alias ISOPUB loz --> +<!ENTITY lrcorner "⌟" ><!--alias ISOAMSC drcorn --> +<!ENTITY Lsh "↰" ><!--alias ISOAMSA lsh --> +<!ENTITY lvertneqq "≨︀" ><!--alias ISOAMSN lvnE --> +<!ENTITY maltese "✠" ><!--alias ISOPUB malt --> +<!ENTITY mapsto "↦" ><!--alias ISOAMSA map --> +<!ENTITY measuredangle "∡" ><!--alias ISOAMSO angmsd --> +<!ENTITY Mellintrf "ℳ" ><!--Mellin transform --> +<!ENTITY MinusPlus "∓" ><!--alias ISOTECH mnplus --> +<!ENTITY mp "∓" ><!--alias ISOTECH mnplus --> +<!ENTITY multimap "⊸" ><!--alias ISOAMSA mumap --> +<!ENTITY napprox "≉" ><!--alias ISOAMSN nap --> +<!ENTITY natural "♮" ><!--alias ISOPUB natur --> +<!ENTITY naturals "ℕ" ><!--the semi-ring of natural numbers --> +<!ENTITY nearrow "↗" ><!--alias ISOAMSA nearr --> +<!ENTITY NestedGreaterGreater "≫" ><!--alias ISOAMSR Gt --> +<!ENTITY NestedLessLess "≪" ><!--alias ISOAMSR Lt --> +<!ENTITY nexists "∄" ><!--alias ISOAMSO nexist --> +<!ENTITY ngeq "≱⃥" ><!--alias ISOAMSN nge --> +<!ENTITY ngeqq "≱" ><!--alias ISOAMSN ngE --> +<!ENTITY ngeqslant "≱" ><!--alias ISOAMSN nges --> +<!ENTITY ngtr "≯" ><!--alias ISOAMSN ngt --> +<!ENTITY nleftarrow "↚" ><!--alias ISOAMSA nlarr --> +<!ENTITY nLeftarrow "⇍" ><!--alias ISOAMSA nlArr --> +<!ENTITY nleftrightarrow "↮" ><!--alias ISOAMSA nharr --> +<!ENTITY nLeftrightarrow "⇎" ><!--alias ISOAMSA nhArr --> +<!ENTITY nleq "≰⃥" ><!--alias ISOAMSN nle --> +<!ENTITY nleqq "≰" ><!--alias ISOAMSN nlE --> +<!ENTITY nleqslant "≰" ><!--alias ISOAMSN nles --> +<!ENTITY nless "≮" ><!--alias ISOAMSN nlt --> +<!ENTITY NonBreakingSpace " " ><!--alias ISONUM nbsp --> +<!ENTITY NotCongruent "≢" ><!--alias ISOAMSN nequiv --> +<!ENTITY NotDoubleVerticalBar "∦" ><!--alias ISOAMSN npar --> +<!ENTITY NotElement "∉" ><!--alias ISOTECH notin --> +<!ENTITY NotEqual "≠" ><!--alias ISOTECH ne --> +<!ENTITY NotEqualTilde "≂̸" ><!--alias for ≂̸ --> +<!ENTITY NotExists "∄" ><!--alias ISOAMSO nexist --> +<!ENTITY NotGreater "≯" ><!--alias ISOAMSN ngt --> +<!ENTITY NotGreaterEqual "≱⃥" ><!--alias ISOAMSN nge --> +<!ENTITY NotGreaterFullEqual "≰" ><!--alias ISOAMSN nlE --> +<!ENTITY NotGreaterGreater "≫̸︀" ><!--alias ISOAMSN nGtv --> +<!ENTITY NotGreaterLess "≹" ><!--alias ISOAMSN ntvgl --> +<!ENTITY NotGreaterSlantEqual "≱" ><!--alias ISOAMSN nges --> +<!ENTITY NotGreaterTilde "≵" ><!--alias ISOAMSN ngsim --> +<!ENTITY NotHumpDownHump "≎̸" ><!--alias for ≎̸ --> +<!ENTITY NotLeftTriangle "⋪" ><!--alias ISOAMSN nltri --> +<!ENTITY NotLeftTriangleEqual "⋬" ><!--alias ISOAMSN nltrie --> +<!ENTITY NotLess "≮" ><!--alias ISOAMSN nlt --> +<!ENTITY NotLessEqual "≰⃥" ><!--alias ISOAMSN nle --> +<!ENTITY NotLessGreater "≸" ><!--alias ISOAMSN ntvlg --> +<!ENTITY NotLessLess "≪̸︀" ><!--alias ISOAMSN nLtv --> +<!ENTITY NotLessSlantEqual "≰" ><!--alias ISOAMSN nles --> +<!ENTITY NotLessTilde "≴" ><!--alias ISOAMSN nlsim --> +<!ENTITY NotPrecedes "⊀" ><!--alias ISOAMSN npr --> +<!ENTITY NotPrecedesEqual "⪯̸" ><!--alias ISOAMSN npre --> +<!ENTITY NotPrecedesSlantEqual "⋠" ><!--alias ISOAMSN nprcue --> +<!ENTITY NotReverseElement "∌" ><!--alias ISOTECH notniva --> +<!ENTITY NotRightTriangle "⋫" ><!--alias ISOAMSN nrtri --> +<!ENTITY NotRightTriangleEqual "⋭" ><!--alias ISOAMSN nrtrie --> +<!ENTITY NotSquareSubsetEqual "⋢" ><!--alias ISOAMSN nsqsube --> +<!ENTITY NotSquareSupersetEqual "⋣" ><!--alias ISOAMSN nsqsupe --> +<!ENTITY NotSubset "⊄" ><!--alias ISOAMSN vnsub --> +<!ENTITY NotSubsetEqual "⊈" ><!--alias ISOAMSN nsube --> +<!ENTITY NotSucceeds "⊁" ><!--alias ISOAMSN nsc --> +<!ENTITY NotSucceedsEqual "⪰̸" ><!--alias ISOAMSN nsce --> +<!ENTITY NotSucceedsSlantEqual "⋡" ><!--alias ISOAMSN nsccue --> +<!ENTITY NotSuperset "⊅" ><!--alias ISOAMSN vnsup --> +<!ENTITY NotSupersetEqual "⊉" ><!--alias ISOAMSN nsupe --> +<!ENTITY NotTilde "≁" ><!--alias ISOAMSN nsim --> +<!ENTITY NotTildeEqual "≄" ><!--alias ISOAMSN nsime --> +<!ENTITY NotTildeFullEqual "≇" ><!--alias ISOAMSN ncong --> +<!ENTITY NotTildeTilde "≉" ><!--alias ISOAMSN nap --> +<!ENTITY NotVerticalBar "∤" ><!--alias ISOAMSN nmid --> +<!ENTITY nparallel "∦" ><!--alias ISOAMSN npar --> +<!ENTITY nprec "⊀" ><!--alias ISOAMSN npr --> +<!ENTITY npreceq "⪯̸" ><!--alias ISOAMSN npre --> +<!ENTITY nrightarrow "↛" ><!--alias ISOAMSA nrarr --> +<!ENTITY nRightarrow "⇏" ><!--alias ISOAMSA nrArr --> +<!ENTITY nshortmid "∤︀" ><!--alias ISOAMSN nsmid --> +<!ENTITY nshortparallel "∦︀" ><!--alias ISOAMSN nspar --> +<!ENTITY nsimeq "≄" ><!--alias ISOAMSN nsime --> +<!ENTITY nsubset "⊄" ><!--alias ISOAMSN vnsub --> +<!ENTITY nsubseteq "⊈" ><!--alias ISOAMSN nsube --> +<!ENTITY nsubseteqq "⊈" ><!--alias ISOAMSN nsubE --> +<!ENTITY nsucc "⊁" ><!--alias ISOAMSN nsc --> +<!ENTITY nsucceq "⪰̸" ><!--alias ISOAMSN nsce --> +<!ENTITY nsupset "⊅" ><!--alias ISOAMSN vnsup --> +<!ENTITY nsupseteq "⊉" ><!--alias ISOAMSN nsupe --> +<!ENTITY nsupseteqq "⊉" ><!--alias ISOAMSN nsupE --> +<!ENTITY ntriangleleft "⋪" ><!--alias ISOAMSN nltri --> +<!ENTITY ntrianglelefteq "⋬" ><!--alias ISOAMSN nltrie --> +<!ENTITY ntriangleright "⋫" ><!--alias ISOAMSN nrtri --> +<!ENTITY ntrianglerighteq "⋭" ><!--alias ISOAMSN nrtrie --> +<!ENTITY nwarrow "↖" ><!--alias ISOAMSA nwarr --> +<!ENTITY oint "∮" ><!--alias ISOTECH conint --> +<!ENTITY OpenCurlyDoubleQuote "“" ><!--alias ISONUM ldquo --> +<!ENTITY OpenCurlyQuote "‘" ><!--alias ISONUM lsquo --> +<!ENTITY orderof "ℴ" ><!--alias ISOTECH order --> +<!ENTITY parallel "∥" ><!--alias ISOTECH par --> +<!ENTITY PartialD "∂" ><!--alias ISOTECH part --> +<!ENTITY pitchfork "⋔" ><!--alias ISOAMSR fork --> +<!ENTITY PlusMinus "±" ><!--alias ISONUM plusmn --> +<!ENTITY pm "±" ><!--alias ISONUM plusmn --> +<!ENTITY Poincareplane "ℌ" ><!--the Poincare upper half-plane --> +<!ENTITY prec "≺" ><!--alias ISOAMSR pr --> +<!ENTITY precapprox "≾" ><!--alias ISOAMSR prap --> +<!ENTITY preccurlyeq "≼" ><!--alias ISOAMSR prcue --> +<!ENTITY Precedes "≺" ><!--alias ISOAMSR pr --> +<!ENTITY PrecedesEqual "⪯" ><!--alias ISOAMSR pre --> +<!ENTITY PrecedesSlantEqual "≼" ><!--alias ISOAMSR prcue --> +<!ENTITY PrecedesTilde "≾" ><!--alias ISOAMSR prsim --> +<!ENTITY preceq "⪯" ><!--alias ISOAMSR pre --> +<!ENTITY precnapprox "⋨" ><!--alias ISOAMSN prnap --> +<!ENTITY precneqq "⪵" ><!--alias ISOAMSN prnE --> +<!ENTITY precnsim "⋨" ><!--alias ISOAMSN prnsim --> +<!ENTITY precsim "≾" ><!--alias ISOAMSR prsim --> +<!ENTITY primes "ℙ" ><!--the prime natural numbers --> +<!ENTITY Proportion "∷" ><!--alias ISOAMSR Colon --> +<!ENTITY Proportional "∝" ><!--alias ISOTECH prop --> +<!ENTITY propto "∝" ><!--alias ISOTECH prop --> +<!ENTITY quaternions "ℍ" ><!--the ring (skew field) of quaternions --> +<!ENTITY questeq "≟" ><!--alias ISOAMSR equest --> +<!ENTITY rangle "〉" ><!--alias ISOTECH rang --> +<!ENTITY rationals "ℚ" ><!--the field of rational numbers --> +<!ENTITY rbrace "}" ><!--alias ISONUM rcub --> +<!ENTITY rbrack "]" ><!--alias ISONUM rsqb --> +<!ENTITY Re "ℜ" ><!--alias ISOAMSO real --> +<!ENTITY realine "ℛ" ><!--the geometric real line --> +<!ENTITY realpart "ℜ" ><!--alias ISOAMSO real --> +<!ENTITY reals "ℝ" ><!--the field of real numbers --> +<!ENTITY ReverseElement "∋" ><!--alias ISOTECH niv --> +<!ENTITY ReverseEquilibrium "⇋" ><!--alias ISOAMSA lrhar --> +<!ENTITY ReverseUpEquilibrium "⥯" ><!--alias ISOAMSA duhar --> +<!ENTITY RightAngleBracket "〉" ><!--alias ISOTECH rang --> +<!ENTITY rightarrow "→" ><!--alias ISONUM rarr --> +<!ENTITY Rightarrow "⇒" ><!--alias ISOTECH rArr --> +<!ENTITY RightArrow "→" ><!--alias ISONUM rarr --> +<!ENTITY RightArrowBar "⇥" ><!--alias for rarrb --> +<!ENTITY RightArrowLeftArrow "⇄" ><!--alias ISOAMSA rlarr --> +<!ENTITY rightarrowtail "↣" ><!--alias ISOAMSA rarrtl --> +<!ENTITY RightCeiling "⌉" ><!--alias ISOAMSC rceil --> +<!ENTITY RightDoubleBracket "〛" ><!--right double bracket delimiter --> +<!ENTITY RightDownVector "⇂" ><!--alias ISOAMSA dharr --> +<!ENTITY RightFloor "⌋" ><!--alias ISOAMSC rfloor --> +<!ENTITY rightharpoondown "⇁" ><!--alias ISOAMSA rhard --> +<!ENTITY rightharpoonup "⇀" ><!--alias ISOAMSA rharu --> +<!ENTITY rightleftarrows "⇄" ><!--alias ISOAMSA rlarr --> +<!ENTITY rightleftharpoons "⇌" ><!--alias ISOAMSA rlhar --> +<!ENTITY rightrightarrows "⇉" ><!--alias ISOAMSA rrarr --> +<!ENTITY rightsquigarrow "↝" ><!--alias ISOAMSA rarrw --> +<!ENTITY RightTee "⊢" ><!--alias ISOAMSR vdash --> +<!ENTITY RightTeeArrow "↦" ><!--alias ISOAMSA map --> +<!ENTITY rightthreetimes "⋌" ><!--alias ISOAMSB rthree --> +<!ENTITY RightTriangle "⊳" ><!--alias ISOAMSR vrtri --> +<!ENTITY RightTriangleEqual "⊵" ><!--alias ISOAMSR rtrie --> +<!ENTITY RightUpVector "↾" ><!--alias ISOAMSA uharr --> +<!ENTITY RightVector "⇀" ><!--alias ISOAMSA rharu --> +<!ENTITY risingdotseq "≓" ><!--alias ISOAMSR erDot --> +<!ENTITY rmoustache "⎱" ><!--alias ISOAMSC rmoust --> +<!ENTITY Rrightarrow "⇛" ><!--alias ISOAMSA rAarr --> +<!ENTITY Rsh "↱" ><!--alias ISOAMSA rsh --> +<!ENTITY searrow "↘" ><!--alias ISOAMSA searr --> +<!ENTITY setminus "∖" ><!--alias ISOAMSB setmn --> +<!ENTITY ShortLeftArrow "←︀" ><!--alias ISOAMSA slarr --> +<!ENTITY shortmid "∣︀" ><!--alias ISOAMSR smid --> +<!ENTITY shortparallel "∥︀" ><!--alias ISOAMSR spar --> +<!ENTITY ShortRightArrow "→︀" ><!--alias ISOAMSA srarr --> +<!ENTITY simeq "≃" ><!--alias ISOTECH sime --> +<!ENTITY SmallCircle "∘" ><!--alias ISOTECH compfn --> +<!ENTITY smallsetminus "∖︀" ><!--alias ISOAMSB ssetmn --> +<!ENTITY spadesuit "♠" ><!--ISOPUB spades --> +<!ENTITY Sqrt "√" ><!--alias ISOTECH radic --> +<!ENTITY sqsubset "⊏" ><!--alias ISOAMSR sqsub --> +<!ENTITY sqsubseteq "⊑" ><!--alias ISOAMSR sqsube --> +<!ENTITY sqsupset "⊐" ><!--alias ISOAMSR sqsup --> +<!ENTITY sqsupseteq "⊒" ><!--alias ISOAMSR sqsupe --> +<!ENTITY Square "□" ><!--alias for square --> +<!ENTITY SquareIntersection "⊓" ><!--alias ISOAMSB sqcap --> +<!ENTITY SquareSubset "⊏" ><!--alias ISOAMSR sqsub --> +<!ENTITY SquareSubsetEqual "⊑" ><!--alias ISOAMSR sqsube --> +<!ENTITY SquareSuperset "⊐" ><!--alias ISOAMSR sqsup --> +<!ENTITY SquareSupersetEqual "⊒" ><!--alias ISOAMSR sqsupe --> +<!ENTITY SquareUnion "⊔" ><!--alias ISOAMSB sqcup --> +<!ENTITY Star "⋆" ><!--alias ISOAMSB sstarf --> +<!ENTITY straightepsilon "ε" ><!--alias ISOGRK3 epsi --> +<!ENTITY straightphi "φ" ><!--alias ISOGRK3 phi --> +<!ENTITY subset "⊂" ><!--alias ISOTECH sub --> +<!ENTITY Subset "⋐" ><!--alias ISOAMSR Sub --> +<!ENTITY subseteq "⊆" ><!--alias ISOTECH sube --> +<!ENTITY subseteqq "⊆" ><!--alias ISOAMSR subE --> +<!ENTITY SubsetEqual "⊆" ><!--alias ISOTECH sube --> +<!ENTITY subsetneq "⊊" ><!--alias ISOAMSN subne --> +<!ENTITY subsetneqq "⊊" ><!--alias ISOAMSN subnE --> +<!ENTITY succ "≻" ><!--alias ISOAMSR sc --> +<!ENTITY succapprox "≿" ><!--alias ISOAMSR scap --> +<!ENTITY succcurlyeq "≽" ><!--alias ISOAMSR sccue --> +<!ENTITY Succeeds "≻" ><!--alias ISOAMSR sc --> +<!ENTITY SucceedsEqual "≽" ><!--alias ISOAMSR sce --> +<!ENTITY SucceedsSlantEqual "≽" ><!--alias ISOAMSR sccue --> +<!ENTITY SucceedsTilde "≿" ><!--alias ISOAMSR scsim --> +<!ENTITY succeq "≽" ><!--alias ISOAMSR sce --> +<!ENTITY succnapprox "⋩" ><!--alias ISOAMSN scnap --> +<!ENTITY succneqq "⪶" ><!--alias ISOAMSN scnE --> +<!ENTITY succnsim "⋩" ><!--alias ISOAMSN scnsim --> +<!ENTITY succsim "≿" ><!--alias ISOAMSR scsim --> +<!ENTITY SuchThat "∋" ><!--ISOTECH ni --> +<!ENTITY Sum "∑" ><!--alias ISOAMSB sum --> +<!ENTITY Superset "⊃" ><!--alias ISOTECH sup --> +<!ENTITY SupersetEqual "⊇" ><!--alias ISOTECH supe --> +<!ENTITY supset "⊃" ><!--alias ISOTECH sup --> +<!ENTITY Supset "⋑" ><!--alias ISOAMSR Sup --> +<!ENTITY supseteq "⊇" ><!--alias ISOTECH supe --> +<!ENTITY supseteqq "⊇" ><!--alias ISOAMSR supE --> +<!ENTITY supsetneq "⊋" ><!--alias ISOAMSN supne --> +<!ENTITY supsetneqq "⊋" ><!--alias ISOAMSN supnE --> +<!ENTITY swarrow "↙" ><!--alias ISOAMSA swarr --> +<!ENTITY therefore "∴" ><!--alias ISOTECH there4 --> +<!ENTITY Therefore "∴" ><!--alias ISOTECH there4 --> +<!ENTITY thickapprox "≈︀" ><!--ISOAMSR thkap --> +<!ENTITY thicksim "∼︀" ><!--ISOAMSR thksim --> +<!ENTITY ThinSpace " " ><!--space of width 3/18 em alias ISOPUB thinsp --> +<!ENTITY Tilde "∼" ><!--alias ISOTECH sim --> +<!ENTITY TildeEqual "≃" ><!--alias ISOTECH sime --> +<!ENTITY TildeFullEqual "≅" ><!--alias ISOTECH cong --> +<!ENTITY TildeTilde "≈" ><!--alias ISOTECH ap --> +<!ENTITY toea "⤨" ><!--alias ISOAMSA nesear --> +<!ENTITY tosa "⤩" ><!--alias ISOAMSA seswar --> +<!ENTITY triangle "▵" ><!--alias ISOPUB utri --> +<!ENTITY triangledown "▿" ><!--alias ISOPUB dtri --> +<!ENTITY triangleleft "◃" ><!--alias ISOPUB ltri --> +<!ENTITY trianglelefteq "⊴" ><!--alias ISOAMSR ltrie --> +<!ENTITY triangleq "≜" ><!--alias ISOAMSR trie --> +<!ENTITY triangleright "▹" ><!--alias ISOPUB rtri --> +<!ENTITY trianglerighteq "⊵" ><!--alias ISOAMSR rtrie --> +<!ENTITY TripleDot "⃛" ><!--alias ISOTECH tdot --> +<!ENTITY twoheadleftarrow "↞" ><!--alias ISOAMSA Larr --> +<!ENTITY twoheadrightarrow "↠" ><!--alias ISOAMSA Rarr --> +<!ENTITY ulcorner "⌜" ><!--alias ISOAMSC ulcorn --> +<!ENTITY Union "⋃" ><!--alias ISOAMSB xcup --> +<!ENTITY UnionPlus "⊎" ><!--alias ISOAMSB uplus --> +<!ENTITY uparrow "↑" ><!--alias ISONUM uarr --> +<!ENTITY Uparrow "⇑" ><!--alias ISOAMSA uArr --> +<!ENTITY UpArrow "↑" ><!--alias ISONUM uarr --> +<!ENTITY UpArrowDownArrow "⇅" ><!--alias ISOAMSA udarr --> +<!ENTITY updownarrow "↕" ><!--alias ISOAMSA varr --> +<!ENTITY Updownarrow "⇕" ><!--alias ISOAMSA vArr --> +<!ENTITY UpDownArrow "↕" ><!--alias ISOAMSA varr --> +<!ENTITY UpEquilibrium "⥮" ><!--alias ISOAMSA udhar --> +<!ENTITY upharpoonleft "↿" ><!--alias ISOAMSA uharl --> +<!ENTITY upharpoonright "↾" ><!--alias ISOAMSA uharr --> +<!ENTITY UpperLeftArrow "↖" ><!--alias ISOAMSA nwarr --> +<!ENTITY UpperRightArrow "↗" ><!--alias ISOAMSA nearr --> +<!ENTITY upsilon "υ" ><!--alias ISOGRK3 upsi --> +<!ENTITY Upsilon "ϒ" ><!--alias ISOGRK3 Upsi --> +<!ENTITY UpTee "⊥" ><!--alias ISOTECH perp --> +<!ENTITY UpTeeArrow "↥" ><!--Alias mapstoup --> +<!ENTITY upuparrows "⇈" ><!--alias ISOAMSA uuarr --> +<!ENTITY urcorner "⌝" ><!--alias ISOAMSC urcorn --> +<!ENTITY varepsilon "ɛ" ><!--alias ISOGRK3 epsiv --> +<!ENTITY varkappa "ϰ" ><!--alias ISOGRK3 kappav --> +<!ENTITY varnothing "∅" ><!--alias ISOAMSO emptyv --> +<!ENTITY varphi "ϕ" ><!--alias ISOGRK3 phiv --> +<!ENTITY varpi "ϖ" ><!--alias ISOGRK3 piv --> +<!ENTITY varpropto "∝" ><!--alias ISOAMSR vprop --> +<!ENTITY varrho "ϱ" ><!--alias ISOGRK3 rhov --> +<!ENTITY varsigma "ς" ><!--alias ISOGRK3 sigmav --> +<!ENTITY varsubsetneq "⊊︀" ><!--alias ISOAMSN vsubne --> +<!ENTITY varsubsetneqq "⊊︀" ><!--alias ISOAMSN vsubnE --> +<!ENTITY varsupsetneq "⊋︀" ><!--alias ISOAMSN vsupne --> +<!ENTITY varsupsetneqq "⊋︀" ><!--alias ISOAMSN vsupnE --> +<!ENTITY vartheta "ϑ" ><!--alias ISOGRK3 thetav --> +<!ENTITY vartriangleleft "⊲" ><!--alias ISOAMSR vltri --> +<!ENTITY vartriangleright "⊳" ><!--alias ISOAMSR vrtri --> +<!ENTITY vee "∨" ><!--alias ISOTECH or --> +<!ENTITY Vee "⋁" ><!--alias ISOAMSB xvee --> +<!ENTITY vert "|" ><!--alias ISONUM verbar --> +<!ENTITY Vert "‖" ><!--alias ISOTECH Verbar --> +<!ENTITY VerticalBar "∣" ><!--alias ISOAMSR mid --> +<!ENTITY VerticalTilde "≀" ><!--alias ISOAMSB wreath --> +<!ENTITY VeryThinSpace " " ><!--space of width 1/18 em alias ISOPUB hairsp --> +<!ENTITY wedge "∧" ><!--alias ISOTECH and --> +<!ENTITY Wedge "⋀" ><!--alias ISOAMSB xwedge --> +<!ENTITY wp "℘" ><!--alias ISOAMSO weierp --> +<!ENTITY wr "≀" ><!--alias ISOAMSB wreath --> +<!ENTITY zeetrf "ℨ" ><!--zee transform --> +<!ENTITY ZeroWidthSpace "​" ><!--zero width space --> + + +<!-- end of MathML Character Entity section -->]]> + +<!-- Revision History: + + Initial draft (syntax = XML) 1997-05-09 + Stephen Buswell + Revised 1997-05-14 + Robert Miner + Revised 1997-06-29 and 1997-07-02 + Stephen Buswell + Revised 1997-12-15 + Stephen Buswell + Revised 1998-02-08 + Stephen Buswell + Revised 1998-04-04 + Stephen Buswell + Entities and small revisions 1999-02-21 + David Carlisle + Added attribute definitionURL to ci and cn 1999-10-11 + Nico Poppelier + Additions for MathML 2 1999-12-16 + David Carlisle + Namespace support 2000-01-14 + David Carlisle + XHTML Compatibility 2000-02-23 + Murray Altheim + New content elements 2000-03-26 + David Carlisle + Further revisions for MathML2 CR draft 2000-07-11 + David Carlisle + Further revisions for MathML2 CR draft 2000-10-31 + David Carlisle + +--> + +<!-- end of MathML 2.0 DTD ................................................ --> +<!-- ....................................................................... --> + + +]]> + +<!-- end of xhtml-math-svg.dtd --> diff --git a/htdocs/sgml-lib/xhtml-math-svg-flat-20020809.dtd b/htdocs/sgml-lib/xhtml-math-svg-flat-20020809.dtd new file mode 100644 index 0000000..7360439 --- /dev/null +++ b/htdocs/sgml-lib/xhtml-math-svg-flat-20020809.dtd @@ -0,0 +1,15405 @@ +<!-- ....................................................................... --> +<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD ........................... --> +<!-- URI: http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd +--> + +<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD + + This is a prototype extension of XHTML 1.1 incorporating MathML 2.0 + and SVG 1.1. + + Copyright 2002 World Wide Web Consortium + (Massachusetts Institute of Technology, Institut National de + Recherche en Informatique et en Automatique, Keio University). + All Rights Reserved. + + Permission to use, copy, modify and distribute this DTD and its + accompanying documentation for any purpose and without fee is hereby + granted in perpetuity, provided that the above copyright notice and + this paragraph appear in all copies. The copyright holders make no + representation about the suitability of the DTD for any purpose. + + It is provided "as is" without expressed or implied warranty. + + Editors: Murray M. Altheim <altheim@eng.sun.com> (XHTML modules) + David Carlisle <davidc@nag.co.uk> (MathML modules) + Jun Fujisawa <fujisawa.jun@canon.co.jp> (SVG modules) + Masayasu Ishikawa <mimasa@w3.org> (DTD driver) + Revision: + $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + +--> +<!-- This is the driver for an XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD. +--> + +<!-- Switches to include/ignore each vocabulary. +--> +<!ENTITY % XHTML.module "INCLUDE" > +<!ENTITY % MATHML.module "INCLUDE" > +<!ENTITY % SVG.module "INCLUDE" > + +<![%XHTML.module;[ +<!ENTITY % XHTML.version + "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" > +]]> + +<!-- Switches to enable subsets. +--> +<!ENTITY % XHTML.Basic.module "IGNORE" > +<!ENTITY % SVG.Basic.module "IGNORE" > +<!ENTITY % SVG.Tiny.module "IGNORE" > + +<!-- Use the following entities to identify the namespaces: +--> +<!ENTITY % XHTML.xmlns "http://www.w3.org/1999/xhtml" > +<!ENTITY % MATHML.xmlns "http://www.w3.org/1998/Math/MathML" > +<!ENTITY % MATHML.pref.xmlns "http://www.w3.org/2002/Math/preference" > +<!ENTITY % SVG.xmlns "http://www.w3.org/2000/svg" > +<!ENTITY % XLINK.xmlns "http://www.w3.org/1999/xlink" > + +<!-- Declare base URIs for the relevant DTD modules. +--> +<![%XHTML.module;[ +<!ENTITY % XHTML.sysid.base + "http://www.w3.org/TR/xhtml-modularization/DTD/" > +]]> +<![%MATHML.module;[ +<!ENTITY % MATHML.sysid.base + "http://www.w3.org/Math/DTD/mathml2/" > +]]> +<![%SVG.module;[ +<!ENTITY % SVG.sysid.base + "http://www.w3.org/Graphics/SVG/1.1/DTD/" > +]]> + +<!-- Declare system identifiers for the relevant DTD modules. +--> +<![%XHTML.module;[ +<![%XHTML.Basic.module;[ +<!ENTITY % XHTML.dtd.fpi + "-//W3C//DTD XHTML Basic 1.0//EN" > +<!ENTITY % XHTML.dtd.sysid + "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd" > +]]> +<!ENTITY % XHTML.dtd.fpi + "-//W3C//DTD XHTML 1.1//EN" > +<!ENTITY % XHTML.dtd.sysid + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" > +]]> +<![%MATHML.module;[ +<!ENTITY % MATHML.dtd.sysid + "%MATHML.sysid.base;mathml2.dtd" > +<!ENTITY % MATHML.qname.sysid + "%MATHML.sysid.base;mathml2-qname-1.mod" > +]]> +<![%SVG.module;[ +<![%SVG.Tiny.module;[ +<!ENTITY % SVG.dtd.fpi + "-//W3C//DTD SVG 1.1 Tiny//EN" > +<!ENTITY % SVG.dtd.sysid + "%SVG.sysid.base;svg11-tiny.dtd" > +]]> +<![%SVG.Basic.module;[ +<!ENTITY % SVG.dtd.fpi + "-//W3C//DTD SVG 1.1 Basic//EN" > +<!ENTITY % SVG.dtd.sysid + "%SVG.sysid.base;svg11-basic.dtd" > +]]> +<!ENTITY % SVG.dtd.fpi + "-//W3C//DTD SVG 1.1//EN" > +<!ENTITY % SVG.dtd.sysid + "%SVG.sysid.base;svg11.dtd" > +]]> + +<!-- See the XHTML / MathML / SVG Qualified Names modules for information + on the use of namespace prefixes in the DTD. Default values are + as follows: + + <!ENTITY % NS.prefixed "IGNORE" > + <!ENTITY % XHTML.prefixed "%NS.prefixed;" > + <!ENTITY % XHTML.prefix "" > + <!ENTITY % MATHML.prefixed "%NS.prefixed;" > + <!ENTITY % MATHML.prefix "m" > + <!ENTITY % MATHML.pref.prefixed "IGNORE" > + <!ENTITY % MATHML.pref.prefix "pref" > + <!ENTITY % SVG.prefixed "%NS.prefixed;" > + <!ENTITY % SVG.prefix "" > + <!ENTITY % XLINK.prefix "xlink" > + + In this DTD driver, XHTML and MathML are not prefixed, and SVG is + prefixed by default. It can be changed by redeclaring the above + parameter entities. +--> +<!ENTITY % XHTML.prefixed "IGNORE" > +<!ENTITY % MATHML.prefixed "IGNORE" > +<!ENTITY % MATHML.prefix "m" > +<!ENTITY % MATHML.pref.prefixed "IGNORE" > +<!ENTITY % MATHML.pref.prefix "pref" > +<!ENTITY % SVG.prefixed "INCLUDE" > +<!ENTITY % SVG.prefix "svg" > +<!ENTITY % XLINK.prefix "xlink" > + +<!-- a URI reference, see [URI] --> +<!ENTITY % URI.datatype "CDATA" > + +<!-- Declare a parameter entity %XLINK.xmlns.attrib; containing + the XML Namespace declarations for XLink. +--> +<!ENTITY % XLINK.xmlns.attrib + "xmlns:%XLINK.prefix; %URI.datatype; #FIXED '%XLINK.xmlns;'" +> + +<!-- Allow universal MathML stylesheet-related declarations. + When it is used, it must always be prefixed. +--> +<![%MATHML.module;[ +<![%MATHML.pref.prefixed;[ +<!ENTITY % MATHML.pref.renderer.extra ""> +<!ENTITY % MATHML.pref.renderer + "css | mathplayer-dl | mathplayer | techexplorer-plugin | techexplorer"> +<!ENTITY % MATHML.pref.xmlns.attrib + "xmlns:%MATHML.pref.prefix; %URI.datatype; #FIXED '%MATHML.pref.xmlns;' + %MATHML.pref.prefix;:renderer + ( %MATHML.pref.renderer; %MATHML.pref.renderer.extra; ) #IMPLIED" +> +]]> +]]> +<!ENTITY % MATHML.pref.xmlns.attrib "" > + +<!-- The parameter entities %SVG.xmlns.extra.attrib; and + %XHTML.xmlns.extra.attrib; may be redeclared to contain + any foreign namespace declarations for namespaces embedded + in XHTML+MathML+SVG. The default value is an empty string. +--> +<!ENTITY % SVG.xmlns.extra.attrib "" > +<!ENTITY % XHTML.xmlns.extra.attrib "" > + +<!-- Declare parameter entities to define XML Namespace declarations + for SVG, XHTML and MathML. +--> +<![%SVG.module;[ +<![%SVG.prefixed;[ +<!ENTITY % SVG.xmlns.decl.attrib + "xmlns:%SVG.prefix; %URI.datatype; #FIXED '%SVG.xmlns;'" +> +]]> +<!ENTITY % SVG.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%SVG.xmlns;'" +> +]]> +<!ENTITY % SVG.xmlns.decl.attrib "" > + +<![%XHTML.module;[ +<![%XHTML.prefixed;[ +<!ENTITY % XHTML.xmlns.decl.attrib + "xmlns:%XHTML.prefix; %URI.datatype; #FIXED '%XHTML.xmlns;'" +> +]]> +<!ENTITY % XHTML.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%XHTML.xmlns;'" +> +]]> +<!ENTITY % XHTML.xmlns.decl.attrib "" > + +<![%MATHML.module;[ +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.xmlns.decl.attrib + "xmlns:%MATHML.prefix; %URI.datatype; #FIXED '%MATHML.xmlns;'" +> +]]> +<!ENTITY % MATHML.xmlns.decl.attrib + "xmlns %URI.datatype; #FIXED '%MATHML.xmlns;'" +> +]]> +<!ENTITY % MATHML.xmlns.decl.attrib "" > + +<!-- Declare common case for %NS.decl.attrib;. +--> +<!ENTITY % NS.common.decl.attrib + "%SVG.xmlns.decl.attrib; + %XHTML.xmlns.decl.attrib; + %MATHML.xmlns.decl.attrib; + %XLINK.xmlns.attrib; + %MATHML.pref.xmlns.attrib; + %SVG.xmlns.extra.attrib; + %XHTML.xmlns.extra.attrib;" +> + +<!-- Redeclare the parameter entity %NS.decl.attrib; containing + all XML Namespace declarations used in the DTD, its form + dependent on whether prefixing is active. +--> +<![%SVG.prefixed;[ +<![%XHTML.prefixed;[ +<!-- SVG and XHTML are prefixed, MathML is either prefixed or not prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<![%MATHML.prefixed;[ +<!-- SVG and MathML are prefixed, XHTML is not prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<!-- SVG is prefixed, XHTML and MathML are not prefixed. + MathML namespace must always be specified on the math element. +--> +<!ENTITY % NS.decl.attrib + "%SVG.xmlns.decl.attrib; + %XHTML.xmlns.decl.attrib; + %XLINK.xmlns.attrib; + %MATHML.pref.xmlns.attrib; + %SVG.xmlns.extra.attrib; + %XHTML.xmlns.extra.attrib;" +> +]]> +<![%XHTML.prefixed;[ +<![%MATHML.prefixed;[ +<!-- SVG is not prefixed, XHTML and MathML are prefixed. +--> +<!ENTITY % NS.decl.attrib + "%NS.common.decl.attrib;" +> +]]> +<!-- SVG and MathML are not prefixed, which is not allowed. +--> +<!ENTITY % NS.decl.attrib "" > +]]> +<!-- SVG, MathML and XHTML are all not prefixed, which is not allowed. +--> +<!ENTITY % NS.decl.attrib "" > + +<!-- Redeclare parameter entities %SVG.xmlns.attrib; and + %XHTML.xmlns.attrib; containing all XML namespace declarations + used by XHTML+MathML+SVG, including a default xmlns declaration + when prefixing is inactive. +--> +<![%SVG.module;[ +<!ENTITY % SVG.xmlns.attrib + "%NS.decl.attrib;" +> +]]> + +<![%XHTML.module;[ +<!ENTITY % XHTML.xmlns.attrib + "%NS.decl.attrib;" +> +]]> + +<!-- Redeclare the parameter entity %MATHML.xmlns.extra.attrib; + containing XLink and MathML preferences namespace declarations + allowed on MathML elements. +--> +<![%MATHML.module;[ +<!ENTITY % MATHML.xmlns.extra.attrib + "%XLINK.xmlns.attrib; + %MATHML.pref.xmlns.attrib;" +> +]]> + +<!-- Framework Redeclaration placeholders ....................... --> + +<![%XHTML.module;[ +<!ENTITY % XHTML.redecl.module "INCLUDE" > +<![%XHTML.redecl.module;[ +<!-- Pre-Framework Redeclaration placeholder .................... --> +<!ENTITY % xhtml-prefw-redecl.mod "" > + +<!-- Post-Framework Redeclaration placeholder ................... --> +<!ENTITY % xhtml-postfw-redecl.mod "" > +]]> +]]> + +<![%SVG.module;[ +<!ENTITY % SVG.redecl.module "INCLUDE" > +<![%SVG.redecl.module;[ +<!-- Pre-Framework Redeclaration placeholder ..................... --> +<!ENTITY % svg-prefw-redecl.mod "" > + +<!-- Post-Framework Redeclaration placeholder .................... --> +<!ENTITY % svg-postfw-redecl.mod "" > +]]> +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Declare MathML Qualified Names module as an extension of + XHTML's Qualified Names module. +--> +<![%MATHML.module;[ +<!ENTITY % xhtml-qname-extra.decl + 'PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN" + "%MATHML.qname.sysid;"' +> +<!ENTITY % xhtml-qname-extra.mod + %xhtml-qname-extra.decl; +> +]]> + +<!-- Declare location of math and svg contents in XHTML. +--> + +<![%MATHML.module;[ +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.pfx "%MATHML.prefix;:" > +]]> +<!ENTITY % MATHML.pfx "" > +<!ENTITY % math.qname "%MATHML.pfx;math" > +<!ENTITY % MATHML.math.class "| %math.qname;" > +]]> +<!ENTITY % MATHML.math.class "" > + +<![%SVG.module;[ +<![%SVG.prefixed;[ +<!ENTITY % SVG.pfx "%SVG.prefix;:" > +]]> +<!ENTITY % SVG.pfx "" > +<!ENTITY % SVG.svg.qname "%SVG.pfx;svg" > +<!ENTITY % SVG.svg.class "| %SVG.svg.qname;" > +]]> +<!ENTITY % SVG.svg.class "" > + +<![%XHTML.module;[ +<![%XHTML.Basic.module;[ +<!ENTITY % Misc.class + "%MATHML.math.class; %SVG.svg.class;" > +]]> +<!ENTITY % Misc.extra + "%MATHML.math.class; %SVG.svg.class;" > +]]> + +<!-- Redeclare SVG's foreignObject content (allow anything). +--> +<![%SVG.module;[ +<!ENTITY % SVG.foreignObject.content "ANY" > +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Instantiate SVG DTD ........................................ --> +<![%SVG.module;[ +<!ENTITY % SVG.dtd.decl + 'PUBLIC "%SVG.dtd.fpi;" + "%SVG.dtd.sysid;"' +> +<!ENTITY % SVG.dtd %SVG.dtd.decl; > +<!-- ....................................................................... --> +<!-- SVG 1.1 DTD ........................................................... --> +<!-- file: svg11.dtd +--> + +<!-- SVG 1.1 DTD + + This is SVG, a language for describing two-dimensional graphics in XML. + + The Scalable Vector Graphics (SVG) + Copyright 2001, 2002 World Wide Web Consortium + (Massachusetts Institute of Technology, Institut National de + Recherche en Informatique et en Automatique, Keio University). + All Rights Reserved. + + Permission to use, copy, modify and distribute the SVG DTD and its + accompanying documentation for any purpose and without fee is hereby + granted in perpetuity, provided that the above copyright notice and + this paragraph appear in all copies. The copyright holders make no + representation about the suitability of the DTD for any purpose. + + It is provided "as is" without expressed or implied warranty. + + Author: Jun Fujisawa <fujisawa.jun@canon.co.jp> + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + +--> +<!-- This is the driver file for version 1.1 of the SVG DTD. + + This DTD is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD SVG 1.1//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" +--> +<!ENTITY % SVG.version "-//W3C//DTD SVG 1.1//EN" > + +<!-- Use this URI to identify the default namespace: + + "http://www.w3.org/2000/svg" + + See the Qualified Names module for information + on the use of namespace prefixes in the DTD. +--> +<!ENTITY % NS.prefixed "IGNORE" > +<!ENTITY % SVG.prefix "" > + +<!-- reserved for future use with document profiles --> +<!ENTITY % SVG.profile "" > + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Pre-Framework Redeclaration Placeholder ..................... --> +<!ENTITY % svg-prefw-redecl.module "IGNORE" > +<![%svg-prefw-redecl.module;[ +%svg-prefw-redecl.mod;]]> + +<!-- Document Model Module ....................................... --> +<!ENTITY % svg-model.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Model//EN" + "svg11-model.mod" > + +<!-- Attribute Collection Module ................................. --> +<!ENTITY % svg-attribs.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Attribute Collection//EN" + "svg11-attribs.mod" > + +<!-- Modular Framework Module .................................... --> +<!ENTITY % svg-framework.module "INCLUDE" > +<![%svg-framework.module;[ +<!ENTITY % svg-framework.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Modular Framework//EN" + "svg-framework.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Modular Framework Module ...................................... --> +<!-- file: svg-framework.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Modular Framework//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-framework.mod" + + ....................................................................... --> + +<!-- Modular Framework + + This module instantiates the modules needed o support the SVG + modularization model, including: + + + Datatypes + + Qualified Name + + Document Model + + Attribute Collection +--> + +<!ENTITY % svg-datatypes.module "INCLUDE" > +<![%svg-datatypes.module;[ +<!ENTITY % svg-datatypes.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Datatypes//EN" + "svg-datatypes.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Datatypes Module .............................................. --> +<!-- file: svg-datatypes.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Datatypes//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-datatypes.mod" + + ....................................................................... --> + +<!-- Datatypes + + This module declares common data types for properties and attributes. +--> + +<!-- feature specification --> +<!ENTITY % Boolean.datatype "( false | true )" > + +<!-- 'clip-rule' or 'fill-rule' property/attribute value --> +<!ENTITY % ClipFillRule.datatype "( nonzero | evenodd | inherit )" > + +<!-- media type, as per [RFC2045] --> +<!ENTITY % ContentType.datatype "CDATA" > + +<!-- a <coordinate> --> +<!ENTITY % Coordinate.datatype "CDATA" > + +<!-- a list of <coordinate>s --> +<!ENTITY % Coordinates.datatype "CDATA" > + +<!-- a <color> value --> +<!ENTITY % Color.datatype "CDATA" > + +<!-- a <integer> --> +<!ENTITY % Integer.datatype "CDATA" > + +<!-- a language code, as per [RFC3066] --> +<!ENTITY % LanguageCode.datatype "NMTOKEN" > + +<!-- comma-separated list of language codes, as per [RFC3066] --> +<!ENTITY % LanguageCodes.datatype "CDATA" > + +<!-- a <length> --> +<!ENTITY % Length.datatype "CDATA" > + +<!-- a list of <length>s --> +<!ENTITY % Lengths.datatype "CDATA" > + +<!-- a <number> --> +<!ENTITY % Number.datatype "CDATA" > + +<!-- a list of <number>s --> +<!ENTITY % Numbers.datatype "CDATA" > + +<!-- opacity value (e.g., <number>) --> +<!ENTITY % OpacityValue.datatype "CDATA" > + +<!-- a path data specification --> +<!ENTITY % PathData.datatype "CDATA" > + +<!-- 'preserveAspectRatio' attribute specification --> +<!ENTITY % PreserveAspectRatioSpec.datatype "CDATA" > + +<!-- script expression --> +<!ENTITY % Script.datatype "CDATA" > + +<!-- An SVG color value (RGB plus optional ICC) --> +<!ENTITY % SVGColor.datatype "CDATA" > + +<!-- arbitrary text string --> +<!ENTITY % Text.datatype "CDATA" > + +<!-- list of transforms --> +<!ENTITY % TransformList.datatype "CDATA" > + +<!-- a Uniform Resource Identifier, see [URI] --> +<!ENTITY % URI.datatype "CDATA" > + +<!-- 'viewBox' attribute specification --> +<!ENTITY % ViewBoxSpec.datatype "CDATA" > + +<!-- end of svg-datatypes.mod --> +]]> + +<!ENTITY % svg-qname.module "INCLUDE" > +<![%svg-qname.module;[ +<!ENTITY % svg-qname.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Qualified Name//EN" + "svg-qname.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Qualified Name Module ......................................... --> +<!-- file: svg-qname.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Qualified Name//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-qname.mod" + + ....................................................................... --> + +<!-- Qualified Name + + This module is contained in two parts, labeled Section 'A' and 'B': + + Section A declares parameter entities to support namespace- + qualified names, namespace declarations, and name prefixing + for SVG and extensions. + + Section B declares parameter entities used to provide + namespace-qualified names for all SVG element types: +--> + +<!-- Section A: SVG XML Namespace Framework :::::::::::::::::::::: --> + +<!-- 1. Declare a %SVG.prefixed; conditional section keyword, used + to activate namespace prefixing. The default value should + inherit '%NS.prefixed;' from the DTD driver, so that unless + overridden, the default behaviour follows the overall DTD + prefixing scheme. +--> +<!ENTITY % NS.prefixed "IGNORE" > +<!ENTITY % SVG.prefixed "%NS.prefixed;" > + +<!-- 2. Declare a parameter entity (eg., %SVG.xmlns;) containing + the URI reference used to identify the SVG namespace: +--> +<!ENTITY % SVG.xmlns "http://www.w3.org/2000/svg" > +<!ENTITY % XLINK.xmlns "http://www.w3.org/1999/xlink" > + +<!-- 3. Declare parameter entities (eg., %SVG.prefix;) containing + the default namespace prefix string(s) to use when prefixing + is enabled. This may be overridden in the DTD driver or the + internal subset of an document instance. If no default prefix + is desired, this may be declared as an empty string. +--> +<!ENTITY % SVG.prefix "" > +<!ENTITY % XLINK.prefix "xlink" > + +<!-- 4. Declare parameter entities (eg., %SVG.pfx;) containing the + colonized prefix(es) (eg., '%SVG.prefix;:') used when + prefixing is active, an empty string when it is not. +--> +<![%SVG.prefixed;[ +<!ENTITY % SVG.pfx "%SVG.prefix;:" > +]]> +<!ENTITY % SVG.pfx "" > +<!ENTITY % XLINK.pfx "%XLINK.prefix;:" > + +<!-- 5. The parameter entity %SVG.xmlns.extra.attrib; may be + redeclared to contain any non-SVG namespace declaration + attributes for namespaces embedded in SVG. The default + is an empty string. +--> +<!ENTITY % SVG.xmlns.extra.attrib "" > + +<!-- Declare a parameter entity XLINK.xmlns.attrib containing + the XML Namespace declarations for XLink. +--> +<!ENTITY % XLINK.xmlns.attrib + "xmlns:%XLINK.prefix; %URI.datatype; #FIXED '%XLINK.xmlns;'" +> + +<!-- Declare a parameter entity %NS.decl.attrib; containing + all XML Namespace declarations used in the DTD, plus the + xmlns declaration for SVG, its form dependent on whether + prefixing is active. +--> +<![%SVG.prefixed;[ +<!ENTITY % NS.decl.attrib + "xmlns:%SVG.prefix; %URI.datatype; #FIXED '%SVG.xmlns;' + %XLINK.xmlns.attrib; + %SVG.xmlns.extra.attrib;" +> +]]> +<!ENTITY % NS.decl.attrib + "%XLINK.xmlns.attrib; + %SVG.xmlns.extra.attrib;" +> + +<!-- Declare a parameter entity %SVG.xmlns.attrib; containing + all XML namespace declaration attributes used by SVG, + including a default xmlns attribute when prefixing is + inactive. +--> +<![%SVG.prefixed;[ +<!ENTITY % SVG.xmlns.attrib + "%NS.decl.attrib;" +> +]]> +<!ENTITY % SVG.xmlns.attrib + "xmlns %URI.datatype; #FIXED '%SVG.xmlns;' + %XLINK.xmlns.attrib;" +> + +<!-- Section B: SVG Qualified Names :::::::::::::::::::::::::::::: --> + +<!-- 6. This section declares parameter entities used to provide + namespace-qualified names for all SVG element types. +--> + +<!-- module: svg-structure.mod ......................... --> + +<!ENTITY % SVG.svg.qname "%SVG.pfx;svg" > +<!ENTITY % SVG.g.qname "%SVG.pfx;g" > +<!ENTITY % SVG.defs.qname "%SVG.pfx;defs" > +<!ENTITY % SVG.desc.qname "%SVG.pfx;desc" > +<!ENTITY % SVG.title.qname "%SVG.pfx;title" > +<!ENTITY % SVG.metadata.qname "%SVG.pfx;metadata" > +<!ENTITY % SVG.symbol.qname "%SVG.pfx;symbol" > +<!ENTITY % SVG.use.qname "%SVG.pfx;use" > + +<!-- module: svg-conditional.mod ....................... --> + +<!ENTITY % SVG.switch.qname "%SVG.pfx;switch" > + +<!-- module: svg-image.mod ............................. --> + +<!ENTITY % SVG.image.qname "%SVG.pfx;image" > + +<!-- module: svg-style.mod ............................. --> + +<!ENTITY % SVG.style.qname "%SVG.pfx;style" > + +<!-- module: svg-shape.mod ............................. --> + +<!ENTITY % SVG.path.qname "%SVG.pfx;path" > +<!ENTITY % SVG.rect.qname "%SVG.pfx;rect" > +<!ENTITY % SVG.circle.qname "%SVG.pfx;circle" > +<!ENTITY % SVG.line.qname "%SVG.pfx;line" > +<!ENTITY % SVG.ellipse.qname "%SVG.pfx;ellipse" > +<!ENTITY % SVG.polyline.qname "%SVG.pfx;polyline" > +<!ENTITY % SVG.polygon.qname "%SVG.pfx;polygon" > + +<!-- module: svg-text.mod .............................. --> + +<!ENTITY % SVG.text.qname "%SVG.pfx;text" > +<!ENTITY % SVG.tspan.qname "%SVG.pfx;tspan" > +<!ENTITY % SVG.tref.qname "%SVG.pfx;tref" > +<!ENTITY % SVG.textPath.qname "%SVG.pfx;textPath" > +<!ENTITY % SVG.altGlyph.qname "%SVG.pfx;altGlyph" > +<!ENTITY % SVG.altGlyphDef.qname "%SVG.pfx;altGlyphDef" > +<!ENTITY % SVG.altGlyphItem.qname "%SVG.pfx;altGlyphItem" > +<!ENTITY % SVG.glyphRef.qname "%SVG.pfx;glyphRef" > + +<!-- module: svg-marker.mod ............................ --> + +<!ENTITY % SVG.marker.qname "%SVG.pfx;marker" > + +<!-- module: svg-profile.mod ........................... --> + +<!ENTITY % SVG.color-profile.qname "%SVG.pfx;color-profile" > + +<!-- module: svg-gradient.mod .......................... --> + +<!ENTITY % SVG.linearGradient.qname "%SVG.pfx;linearGradient" > +<!ENTITY % SVG.radialGradient.qname "%SVG.pfx;radialGradient" > +<!ENTITY % SVG.stop.qname "stop" > + +<!-- module: svg-pattern.mod ........................... --> + +<!ENTITY % SVG.pattern.qname "%SVG.pfx;pattern" > + +<!-- module: svg-clip.mod .............................. --> + +<!ENTITY % SVG.clipPath.qname "%SVG.pfx;clipPath" > + +<!-- module: svg-mask.mod .............................. --> + +<!ENTITY % SVG.mask.qname "%SVG.pfx;mask" > + +<!-- module: svg-filter.mod ............................ --> + +<!ENTITY % SVG.filter.qname "%SVG.pfx;filter" > +<!ENTITY % SVG.feBlend.qname "%SVG.pfx;feBlend" > +<!ENTITY % SVG.feColorMatrix.qname "%SVG.pfx;feColorMatrix" > +<!ENTITY % SVG.feComponentTransfer.qname "%SVG.pfx;feComponentTransfer" > +<!ENTITY % SVG.feComposite.qname "%SVG.pfx;feComposite" > +<!ENTITY % SVG.feConvolveMatrix.qname "%SVG.pfx;feConvolveMatrix" > +<!ENTITY % SVG.feDiffuseLighting.qname "%SVG.pfx;feDiffuseLighting" > +<!ENTITY % SVG.feDisplacementMap.qname "%SVG.pfx;feDisplacementMap" > +<!ENTITY % SVG.feFlood.qname "%SVG.pfx;feFlood" > +<!ENTITY % SVG.feGaussianBlur.qname "%SVG.pfx;feGaussianBlur" > +<!ENTITY % SVG.feImage.qname "%SVG.pfx;feImage" > +<!ENTITY % SVG.feMerge.qname "%SVG.pfx;feMerge" > +<!ENTITY % SVG.feMergeNode.qname "%SVG.pfx;feMergeNode" > +<!ENTITY % SVG.feMorphology.qname "%SVG.pfx;feMorphology" > +<!ENTITY % SVG.feOffset.qname "%SVG.pfx;feOffset" > +<!ENTITY % SVG.feSpecularLighting.qname "%SVG.pfx;feSpecularLighting" > +<!ENTITY % SVG.feTile.qname "%SVG.pfx;feTile" > +<!ENTITY % SVG.feTurbulence.qname "%SVG.pfx;feTurbulence" > +<!ENTITY % SVG.feDistantLight.qname "%SVG.pfx;feDistantLight" > +<!ENTITY % SVG.fePointLight.qname "%SVG.pfx;fePointLight" > +<!ENTITY % SVG.feSpotLight.qname "%SVG.pfx;feSpotLight" > +<!ENTITY % SVG.feFuncR.qname "%SVG.pfx;feFuncR" > +<!ENTITY % SVG.feFuncG.qname "%SVG.pfx;feFuncG" > +<!ENTITY % SVG.feFuncB.qname "%SVG.pfx;feFuncB" > +<!ENTITY % SVG.feFuncA.qname "%SVG.pfx;feFuncA" > + +<!-- module: svg-cursor.mod ............................ --> + +<!ENTITY % SVG.cursor.qname "%SVG.pfx;cursor" > + +<!-- module: svg-hyperlink.mod ......................... --> + +<!ENTITY % SVG.a.qname "%SVG.pfx;a" > + +<!-- module: svg-view.mod .............................. --> + +<!ENTITY % SVG.view.qname "%SVG.pfx;view" > + +<!-- module: svg-script.mod ............................ --> + +<!ENTITY % SVG.script.qname "%SVG.pfx;script" > + +<!-- module: svg-animation.mod ......................... --> + +<!ENTITY % SVG.animate.qname "%SVG.pfx;animate" > +<!ENTITY % SVG.set.qname "%SVG.pfx;set" > +<!ENTITY % SVG.animateMotion.qname "%SVG.pfx;animateMotion" > +<!ENTITY % SVG.animateColor.qname "%SVG.pfx;animateColor" > +<!ENTITY % SVG.animateTransform.qname "%SVG.pfx;animateTransform" > +<!ENTITY % SVG.mpath.qname "%SVG.pfx;mpath" > + +<!-- module: svg-font.mod .............................. --> + +<!ENTITY % SVG.font.qname "%SVG.pfx;font" > +<!ENTITY % SVG.font-face.qname "%SVG.pfx;font-face" > +<!ENTITY % SVG.glyph.qname "%SVG.pfx;glyph" > +<!ENTITY % SVG.missing-glyph.qname "%SVG.pfx;missing-glyph" > +<!ENTITY % SVG.hkern.qname "%SVG.pfx;hkern" > +<!ENTITY % SVG.vkern.qname "%SVG.pfx;vkern" > +<!ENTITY % SVG.font-face-src.qname "%SVG.pfx;font-face-src" > +<!ENTITY % SVG.font-face-uri.qname "%SVG.pfx;font-face-uri" > +<!ENTITY % SVG.font-face-format.qname "%SVG.pfx;font-face-format" > +<!ENTITY % SVG.font-face-name.qname "%SVG.pfx;font-face-name" > +<!ENTITY % SVG.definition-src.qname "%SVG.pfx;definition-src" > + +<!-- module: svg-extensibility.mod ..................... --> + +<!ENTITY % SVG.foreignObject.qname "%SVG.pfx;foreignObject" > + +<!-- end of svg-qname.mod --> +]]> + +<!ENTITY % svg-model.module "INCLUDE" > +<![%svg-model.module;[ +<!-- instantiate the Document Model declared in the DTD driver --> +<!-- ....................................................................... --> +<!-- SVG 1.1 Document Model Module ......................................... --> +<!-- file: svg11-model.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Model//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-model.mod" + + ....................................................................... --> + +<!-- SVG 1.1 Document Model + + This module describes the groupings of elements that make up + common content models for SVG elements. +--> + +<!-- module: svg-structure.mod ......................... --> + +<!ENTITY % SVG.Description.extra.class "" > +<!ENTITY % SVG.Description.class + "%SVG.desc.qname; | %SVG.title.qname; | %SVG.metadata.qname; + %SVG.Description.extra.class;" +> + +<!ENTITY % SVG.Use.extra.class "" > +<!ENTITY % SVG.Use.class + "| %SVG.use.qname; %SVG.Use.extra.class;" +> + +<!ENTITY % SVG.Structure.extra.class "" > +<!ENTITY % SVG.Structure.class + "| %SVG.svg.qname; | %SVG.g.qname; | %SVG.defs.qname; | %SVG.symbol.qname; + %SVG.Use.class; %SVG.Structure.extra.class;" +> + +<!-- module: svg-conditional.mod ....................... --> + +<!ENTITY % SVG.Conditional.extra.class "" > +<!ENTITY % SVG.Conditional.class + "| %SVG.switch.qname; %SVG.Conditional.extra.class;" +> + +<!-- module: svg-image.mod ............................. --> + +<!ENTITY % SVG.Image.extra.class "" > +<!ENTITY % SVG.Image.class + "| %SVG.image.qname; %SVG.Image.extra.class;" +> + +<!-- module: svg-style.mod ............................. --> + +<!ENTITY % SVG.Style.extra.class "" > +<!ENTITY % SVG.Style.class + "| %SVG.style.qname; %SVG.Style.extra.class;" +> + +<!-- module: svg-shape.mod ............................. --> + +<!ENTITY % SVG.Shape.extra.class "" > +<!ENTITY % SVG.Shape.class + "| %SVG.path.qname; | %SVG.rect.qname; | %SVG.circle.qname; + | %SVG.line.qname; | %SVG.ellipse.qname; | %SVG.polyline.qname; + | %SVG.polygon.qname; %SVG.Shape.extra.class;" +> + +<!-- module: svg-text.mod .............................. --> + +<!ENTITY % SVG.Text.extra.class "" > +<!ENTITY % SVG.Text.class + "| %SVG.text.qname; | %SVG.altGlyphDef.qname; %SVG.Text.extra.class;" +> + +<!ENTITY % SVG.TextContent.extra.class "" > +<!ENTITY % SVG.TextContent.class + "| %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.textPath.qname; + | %SVG.altGlyph.qname; %SVG.TextContent.extra.class;" +> + +<!-- module: svg-marker.mod ............................ --> + +<!ENTITY % SVG.Marker.extra.class "" > +<!ENTITY % SVG.Marker.class + "| %SVG.marker.qname; %SVG.Marker.extra.class;" +> + +<!-- module: svg-profile.mod ........................... --> + +<!ENTITY % SVG.Profile.extra.class "" > +<!ENTITY % SVG.Profile.class + "| %SVG.color-profile.qname; %SVG.Profile.extra.class;" +> + +<!-- module: svg-gradient.mod .......................... --> + +<!ENTITY % SVG.Gradient.extra.class "" > +<!ENTITY % SVG.Gradient.class + "| %SVG.linearGradient.qname; | %SVG.radialGradient.qname; + %SVG.Gradient.extra.class;" +> + +<!-- module: svg-pattern.mod ........................... --> + +<!ENTITY % SVG.Pattern.extra.class "" > +<!ENTITY % SVG.Pattern.class + "| %SVG.pattern.qname; %SVG.Pattern.extra.class;" +> + +<!-- module: svg-clip.mod .............................. --> + +<!ENTITY % SVG.Clip.extra.class "" > +<!ENTITY % SVG.Clip.class + "| %SVG.clipPath.qname; %SVG.Clip.extra.class;" +> + +<!-- module: svg-mask.mod .............................. --> + +<!ENTITY % SVG.Mask.extra.class "" > +<!ENTITY % SVG.Mask.class + "| %SVG.mask.qname; %SVG.Mask.extra.class;" +> + +<!-- module: svg-filter.mod ............................ --> + +<!ENTITY % SVG.Filter.extra.class "" > +<!ENTITY % SVG.Filter.class + "| %SVG.filter.qname; %SVG.Filter.extra.class;" +> + +<!ENTITY % SVG.FilterPrimitive.extra.class "" > +<!ENTITY % SVG.FilterPrimitive.class + "| %SVG.feBlend.qname; | %SVG.feColorMatrix.qname; + | %SVG.feComponentTransfer.qname; | %SVG.feComposite.qname; + | %SVG.feConvolveMatrix.qname; | %SVG.feDiffuseLighting.qname; + | %SVG.feDisplacementMap.qname; | %SVG.feFlood.qname; + | %SVG.feGaussianBlur.qname; | %SVG.feImage.qname; | %SVG.feMerge.qname; + | %SVG.feMorphology.qname; | %SVG.feOffset.qname; + | %SVG.feSpecularLighting.qname; | %SVG.feTile.qname; + | %SVG.feTurbulence.qname; %SVG.FilterPrimitive.extra.class;" +> + +<!-- module: svg-cursor.mod ............................ --> + +<!ENTITY % SVG.Cursor.extra.class "" > +<!ENTITY % SVG.Cursor.class + "| %SVG.cursor.qname; %SVG.Cursor.extra.class;" +> + +<!-- module: svg-hyperlink.mod ......................... --> + +<!ENTITY % SVG.Hyperlink.extra.class "" > +<!ENTITY % SVG.Hyperlink.class + "| %SVG.a.qname; %SVG.Hyperlink.extra.class;" +> + +<!-- module: svg-view.mod .............................. --> + +<!ENTITY % SVG.View.extra.class "" > +<!ENTITY % SVG.View.class + "| %SVG.view.qname; %SVG.View.extra.class;" +> + +<!-- module: svg-script.mod ............................ --> + +<!ENTITY % SVG.Script.extra.class "" > +<!ENTITY % SVG.Script.class + "| %SVG.script.qname; %SVG.Script.extra.class;" +> + +<!-- module: svg-animation.mod ......................... --> + +<!ENTITY % SVG.Animation.extra.class "" > +<!ENTITY % SVG.Animation.class + "%SVG.animate.qname; | %SVG.set.qname; | %SVG.animateMotion.qname; | + %SVG.animateColor.qname; | %SVG.animateTransform.qname; + %SVG.Animation.extra.class;" +> + +<!-- module: svg-font.mod .............................. --> + +<!ENTITY % SVG.Font.extra.class "" > +<!ENTITY % SVG.Font.class + "| %SVG.font.qname; | %SVG.font-face.qname; %SVG.Font.extra.class;" +> + +<!-- module: svg-extensibility.mod ..................... --> + +<!ENTITY % SVG.Extensibility.extra.class "" > +<!ENTITY % SVG.Extensibility.class + "| %SVG.foreignObject.qname; %SVG.Extensibility.extra.class;" +> + +<!-- end of svg11-model.mod --> +]]> + +<!ENTITY % svg-attribs.module "INCLUDE" > +<![%svg-attribs.module;[ +<!-- instantiate the Attribute Collection declared in the DTD driver --> +<!-- ....................................................................... --> +<!-- SVG 1.1 Attribute Collection Module ................................... --> +<!-- file: svg11-attribs.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Attribute Collection//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-attribs.mod" + + ....................................................................... --> + +<!-- SVG 1.1 Attribute Collection + + This module defines the set of common attributes that can be present + on many SVG elements. +--> + +<!-- module: svg-conditional.mod ....................... --> + +<!ENTITY % ExtensionList.datatype "CDATA" > +<!ENTITY % FeatureList.datatype "CDATA" > + +<!ENTITY % SVG.Conditional.extra.attrib "" > +<!ENTITY % SVG.Conditional.attrib + "requiredFeatures %FeatureList.datatype; #IMPLIED + requiredExtensions %ExtensionList.datatype; #IMPLIED + systemLanguage %LanguageCodes.datatype; #IMPLIED + %SVG.Conditional.extra.attrib;" +> + +<!-- module: svg-style.mod ............................. --> + +<!ENTITY % ClassList.datatype "CDATA" > +<!ENTITY % StyleSheet.datatype "CDATA" > + +<!ENTITY % SVG.Style.extra.attrib "" > +<!ENTITY % SVG.Style.attrib + "style %StyleSheet.datatype; #IMPLIED + class %ClassList.datatype; #IMPLIED + %SVG.Style.extra.attrib;" +> + +<!-- module: svg-text.mod .............................. --> + +<!ENTITY % BaselineShiftValue.datatype "CDATA" > +<!ENTITY % FontFamilyValue.datatype "CDATA" > +<!ENTITY % FontSizeValue.datatype "CDATA" > +<!ENTITY % FontSizeAdjustValue.datatype "CDATA" > +<!ENTITY % GlyphOrientationHorizontalValue.datatype "CDATA" > +<!ENTITY % GlyphOrientationVerticalValue.datatype "CDATA" > +<!ENTITY % KerningValue.datatype "CDATA" > +<!ENTITY % SpacingValue.datatype "CDATA" > +<!ENTITY % TextDecorationValue.datatype "CDATA" > + +<!ENTITY % SVG.Text.extra.attrib "" > +<!ENTITY % SVG.Text.attrib + "writing-mode ( lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit ) #IMPLIED + %SVG.Text.extra.attrib;" +> + +<!ENTITY % SVG.TextContent.extra.attrib "" > +<!ENTITY % SVG.TextContent.attrib + "alignment-baseline ( auto | baseline | before-edge | text-before-edge | + middle | central | after-edge | text-after-edge | + ideographic | alphabetic | hanging | mathematical | + inherit ) #IMPLIED + baseline-shift %BaselineShiftValue.datatype; #IMPLIED + direction ( ltr | rtl | inherit ) #IMPLIED + dominant-baseline ( auto | use-script | no-change | reset-size | + ideographic | alphabetic | hanging | mathematical | + central | middle | text-after-edge | text-before-edge | + inherit ) #IMPLIED + glyph-orientation-horizontal %GlyphOrientationHorizontalValue.datatype; + #IMPLIED + glyph-orientation-vertical %GlyphOrientationVerticalValue.datatype; + #IMPLIED + kerning %KerningValue.datatype; #IMPLIED + letter-spacing %SpacingValue.datatype; #IMPLIED + text-anchor ( start | middle | end | inherit ) #IMPLIED + text-decoration %TextDecorationValue.datatype; #IMPLIED + unicode-bidi ( normal | embed | bidi-override | inherit ) #IMPLIED + word-spacing %SpacingValue.datatype; #IMPLIED + %SVG.TextContent.extra.attrib;" +> + +<!ENTITY % SVG.Font.extra.attrib "" > +<!ENTITY % SVG.Font.attrib + "font-family %FontFamilyValue.datatype; #IMPLIED + font-size %FontSizeValue.datatype; #IMPLIED + font-size-adjust %FontSizeAdjustValue.datatype; #IMPLIED + font-stretch ( normal | wider | narrower | ultra-condensed | + extra-condensed | condensed | semi-condensed | + semi-expanded | expanded | extra-expanded | + ultra-expanded | inherit ) #IMPLIED + font-style ( normal | italic | oblique | inherit ) #IMPLIED + font-variant ( normal | small-caps | inherit ) #IMPLIED + font-weight ( normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | + 500 | 600 | 700 | 800 | 900 | inherit ) #IMPLIED + %SVG.Font.extra.attrib;" +> + +<!-- module: svg-marker.mod ............................ --> + +<!ENTITY % MarkerValue.datatype "CDATA" > + +<!ENTITY % SVG.Marker.extra.attrib "" > +<!ENTITY % SVG.Marker.attrib + "marker-start %MarkerValue.datatype; #IMPLIED + marker-mid %MarkerValue.datatype; #IMPLIED + marker-end %MarkerValue.datatype; #IMPLIED + %SVG.Marker.extra.attrib;" +> + +<!-- module: svg-profile.mod ........................... --> + +<!ENTITY % SVG.Profile.extra.attrib "" > +<!ENTITY % SVG.Profile.attrib + "color-profile CDATA #IMPLIED + %SVG.Profile.extra.attrib;" +> + +<!-- module: svg-gradient.mod .......................... --> + +<!ENTITY % NumberOrPercentage.datatype "CDATA" > + +<!ENTITY % SVG.Gradient.extra.attrib "" > +<!ENTITY % SVG.Gradient.attrib + "stop-color %SVGColor.datatype; #IMPLIED + stop-opacity %OpacityValue.datatype; #IMPLIED + %SVG.Gradient.extra.attrib;" +> + +<!-- module: svg-clip.mod .............................. --> + +<!ENTITY % ClipPathValue.datatype "CDATA" > + +<!ENTITY % SVG.Clip.extra.attrib "" > +<!ENTITY % SVG.Clip.attrib + "clip-path %ClipPathValue.datatype; #IMPLIED + clip-rule %ClipFillRule.datatype; #IMPLIED + %SVG.Clip.extra.attrib;" +> + +<!-- module: svg-mask.mod .............................. --> + +<!ENTITY % MaskValue.datatype "CDATA" > + +<!ENTITY % SVG.Mask.extra.attrib "" > +<!ENTITY % SVG.Mask.attrib + "mask %MaskValue.datatype; #IMPLIED + %SVG.Mask.extra.attrib;" +> + +<!-- module: svg-filter.mod ............................ --> + +<!ENTITY % FilterValue.datatype "CDATA" > +<!ENTITY % NumberOptionalNumber.datatype "CDATA" > + +<!ENTITY % SVG.Filter.extra.attrib "" > +<!ENTITY % SVG.Filter.attrib + "filter %FilterValue.datatype; #IMPLIED + %SVG.Filter.extra.attrib;" +> + +<!ENTITY % SVG.FilterColor.extra.attrib "" > +<!ENTITY % SVG.FilterColor.attrib + "color-interpolation-filters ( auto | sRGB | linearRGB | inherit ) + #IMPLIED + %SVG.FilterColor.extra.attrib;" +> + +<!-- module: svg-cursor.mod ............................ --> + +<!ENTITY % CursorValue.datatype "CDATA" > + +<!ENTITY % SVG.Cursor.extra.attrib "" > +<!ENTITY % SVG.Cursor.attrib + "cursor %CursorValue.datatype; #IMPLIED + %SVG.Cursor.extra.attrib;" +> + +<!-- end of svg11-attribs.mod --> +]]> + +<!-- end of svg-framework.mod --> +]]> + +<!-- Post-Framework Redeclaration Placeholder .................... --> +<!ENTITY % svg-postfw-redecl.module "IGNORE" > +<![%svg-postfw-redecl.module;[ +%svg-postfw-redecl.mod;]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Core Attribute Module ....................................... --> +<!ENTITY % svg-core-attrib.module "INCLUDE" > +<![%svg-core-attrib.module;[ +<!ENTITY % svg-core-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Core Attribute//EN" + "svg-core-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Core Attribute Module ......................................... --> +<!-- file: svg-core-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Core Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-core-attrib.mod" + + ....................................................................... --> + +<!-- Core Attribute + + id, xml:base, xml:lang, xml:space + + This module defines the core set of attributes that can be present on + any element. +--> + +<!ENTITY % SVG.id.attrib + "id ID #IMPLIED" +> + +<!ENTITY % SVG.base.attrib + "xml:base %URI.datatype; #IMPLIED" +> + +<!ENTITY % SVG.lang.attrib + "xml:lang %LanguageCode.datatype; #IMPLIED" +> + +<!ENTITY % SVG.space.attrib + "xml:space ( default | preserve ) #IMPLIED" +> + +<!ENTITY % SVG.Core.extra.attrib "" > + +<!ENTITY % SVG.Core.attrib + "%SVG.id.attrib; + %SVG.base.attrib; + %SVG.lang.attrib; + %SVG.space.attrib; + %SVG.Core.extra.attrib;" +> + +<!-- end of svg-core-attrib.mod --> +]]> + +<!-- Container Attribute Module .................................. --> +<!ENTITY % svg-container-attrib.module "INCLUDE" > +<![%svg-container-attrib.module;[ +<!ENTITY % svg-container-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Container Attribute//EN" + "svg-container-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Container Attribute Module .................................... --> +<!-- file: svg-container-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Container Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-container-attrib.mod" + + ....................................................................... --> + +<!-- Container Attribute + + enable-background + + This module defines the Container attribute set. +--> + +<!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') --> +<!ENTITY % EnableBackgroundValue.datatype "CDATA" > + +<!ENTITY % SVG.enable-background.attrib + "enable-background %EnableBackgroundValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.Container.extra.attrib "" > + +<!ENTITY % SVG.Container.attrib + "%SVG.enable-background.attrib; + %SVG.Container.extra.attrib;" +> + +<!-- end of svg-container-attrib.mod --> +]]> + +<!-- Viewport Attribute Module ................................... --> +<!ENTITY % svg-viewport-attrib.module "INCLUDE" > +<![%svg-viewport-attrib.module;[ +<!ENTITY % svg-viewport-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Viewport Attribute//EN" + "svg-viewport-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Viewport Attribute Module ..................................... --> +<!-- file: svg-viewport-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Viewport Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-viewport-attrib.mod" + + ....................................................................... --> + +<!-- Viewport Attribute + + clip, overflow + + This module defines the Viewport attribute set. +--> + +<!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) --> +<!ENTITY % ClipValue.datatype "CDATA" > + +<!ENTITY % SVG.clip.attrib + "clip %ClipValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.overflow.attrib + "overflow ( visible | hidden | scroll | auto | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.Viewport.extra.attrib "" > + +<!ENTITY % SVG.Viewport.attrib + "%SVG.clip.attrib; + %SVG.overflow.attrib; + %SVG.Viewport.extra.attrib;" +> + +<!-- end of svg-viewport-attrib.mod --> +]]> + +<!-- Paint Attribute Module ...................................... --> +<!ENTITY % svg-paint-attrib.module "INCLUDE" > +<![%svg-paint-attrib.module;[ +<!ENTITY % svg-paint-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Attribute//EN" + "svg-paint-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Paint Attribute Module ........................................ --> +<!-- file: svg-paint-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-paint-attrib.mod" + + ....................................................................... --> + +<!-- Paint Attribute + + fill, fill-rule, stroke, stroke-dasharray, stroke-dashoffset, + stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-width, color, + color-interpolation, color-rendering + + This module defines the Paint and Color attribute sets. +--> + +<!-- a 'fill' or 'stroke' property/attribute value: <paint> --> +<!ENTITY % Paint.datatype "CDATA" > + +<!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) --> +<!ENTITY % StrokeDashArrayValue.datatype "CDATA" > + +<!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) --> +<!ENTITY % StrokeDashOffsetValue.datatype "CDATA" > + +<!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) --> +<!ENTITY % StrokeMiterLimitValue.datatype "CDATA" > + +<!-- 'stroke-width' property/attribute value (e.g., <length>) --> +<!ENTITY % StrokeWidthValue.datatype "CDATA" > + +<!ENTITY % SVG.fill.attrib + "fill %Paint.datatype; #IMPLIED" +> + +<!ENTITY % SVG.fill-rule.attrib + "fill-rule %ClipFillRule.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke.attrib + "stroke %Paint.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke-dasharray.attrib + "stroke-dasharray %StrokeDashArrayValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke-dashoffset.attrib + "stroke-dashoffset %StrokeDashOffsetValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke-linecap.attrib + "stroke-linecap ( butt | round | square | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.stroke-linejoin.attrib + "stroke-linejoin ( miter | round | bevel | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.stroke-miterlimit.attrib + "stroke-miterlimit %StrokeMiterLimitValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke-width.attrib + "stroke-width %StrokeWidthValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.Paint.extra.attrib "" > + +<!ENTITY % SVG.Paint.attrib + "%SVG.fill.attrib; + %SVG.fill-rule.attrib; + %SVG.stroke.attrib; + %SVG.stroke-dasharray.attrib; + %SVG.stroke-dashoffset.attrib; + %SVG.stroke-linecap.attrib; + %SVG.stroke-linejoin.attrib; + %SVG.stroke-miterlimit.attrib; + %SVG.stroke-width.attrib; + %SVG.Paint.extra.attrib;" +> + +<!ENTITY % SVG.color.attrib + "color %Color.datatype; #IMPLIED" +> + +<!ENTITY % SVG.color-interpolation.attrib + "color-interpolation ( auto | sRGB | linearRGB | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.color-rendering.attrib + "color-rendering ( auto | optimizeSpeed | optimizeQuality | inherit ) + #IMPLIED" +> + +<!ENTITY % SVG.Color.extra.attrib "" > + +<!ENTITY % SVG.Color.attrib + "%SVG.color.attrib; + %SVG.color-interpolation.attrib; + %SVG.color-rendering.attrib; + %SVG.Color.extra.attrib;" +> + +<!-- end of svg-paint-attrib.mod --> +]]> + +<!-- Paint Opacity Attribute Module .............................. --> +<!ENTITY % svg-opacity-attrib.module "INCLUDE" > +<![%svg-opacity-attrib.module;[ +<!ENTITY % svg-opacity-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Opacity Attribute//EN" + "svg-opacity-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Paint Opacity Attribute Module ................................ --> +<!-- file: svg-opacity-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Opacity Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-opacity-attrib.mod" + + ....................................................................... --> + +<!-- Paint Opacity Attribute + + opacity, fill-opacity, stroke-opacity + + This module defines the Opacity attribute set. +--> + +<!ENTITY % SVG.opacity.attrib + "opacity %OpacityValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.fill-opacity.attrib + "fill-opacity %OpacityValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.stroke-opacity.attrib + "stroke-opacity %OpacityValue.datatype; #IMPLIED" +> + +<!ENTITY % SVG.Opacity.extra.attrib "" > + +<!ENTITY % SVG.Opacity.attrib + "%SVG.opacity.attrib; + %SVG.fill-opacity.attrib; + %SVG.stroke-opacity.attrib; + %SVG.Opacity.extra.attrib;" +> + +<!-- end of svg-opacity-attrib.mod --> +]]> + +<!-- Graphics Attribute Module ................................... --> +<!ENTITY % svg-graphics-attrib.module "INCLUDE" > +<![%svg-graphics-attrib.module;[ +<!ENTITY % svg-graphics-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphics Attribute//EN" + "svg-graphics-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Graphics Attribute Module ..................................... --> +<!-- file: svg-graphics-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphics Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-graphics-attrib.mod" + + ....................................................................... --> + +<!-- Graphics Attribute + + display, image-rendering, pointer-events, shape-rendering, + text-rendering, visibility + + This module defines the Graphics attribute set. +--> + +<!ENTITY % SVG.display.attrib + "display ( inline | block | list-item | run-in | compact | marker | + table | inline-table | table-row-group | table-header-group | + table-footer-group | table-row | table-column-group | + table-column | table-cell | table-caption | none | inherit ) + #IMPLIED" +> + +<!ENTITY % SVG.image-rendering.attrib + "image-rendering ( auto | optimizeSpeed | optimizeQuality | inherit ) + #IMPLIED" +> + +<!ENTITY % SVG.pointer-events.attrib + "pointer-events ( visiblePainted | visibleFill | visibleStroke | visible | + painted | fill | stroke | all | none | inherit ) + #IMPLIED" +> + +<!ENTITY % SVG.shape-rendering.attrib + "shape-rendering ( auto | optimizeSpeed | crispEdges | geometricPrecision | + inherit ) #IMPLIED" +> + +<!ENTITY % SVG.text-rendering.attrib + "text-rendering ( auto | optimizeSpeed | optimizeLegibility | + geometricPrecision | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.visibility.attrib + "visibility ( visible | hidden | inherit ) #IMPLIED" +> + +<!ENTITY % SVG.Graphics.extra.attrib "" > + +<!ENTITY % SVG.Graphics.attrib + "%SVG.display.attrib; + %SVG.image-rendering.attrib; + %SVG.pointer-events.attrib; + %SVG.shape-rendering.attrib; + %SVG.text-rendering.attrib; + %SVG.visibility.attrib; + %SVG.Graphics.extra.attrib;" +> + +<!-- end of svg-graphics-attrib.mod --> +]]> + +<!-- Document Events Attribute Module ............................ --> +<!ENTITY % svg-docevents-attrib.module "INCLUDE" > +<![%svg-docevents-attrib.module;[ +<!ENTITY % svg-docevents-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Events Attribute//EN" + "svg-docevents-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Document Events Attribute Module .............................. --> +<!-- file: svg-docevents-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Events Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-docevents-attrib.mod" + + ....................................................................... --> + +<!-- Document Events Attribute + + onunload, onabort, onerror, onresize, onscroll, onzoom + + This module defines the DocumentEvents attribute set. +--> + +<!ENTITY % SVG.onunload.attrib + "onunload %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onabort.attrib + "onabort %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onerror.attrib + "onerror %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onresize.attrib + "onresize %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onscroll.attrib + "onscroll %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onzoom.attrib + "onzoom %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.DocumentEvents.extra.attrib "" > + +<!ENTITY % SVG.DocumentEvents.attrib + "%SVG.onunload.attrib; + %SVG.onabort.attrib; + %SVG.onerror.attrib; + %SVG.onresize.attrib; + %SVG.onscroll.attrib; + %SVG.onzoom.attrib; + %SVG.DocumentEvents.extra.attrib;" +> + +<!-- end of svg-docevents-attrib.mod --> +]]> + +<!-- Graphical Element Events Attribute Module ................... --> +<!ENTITY % svg-graphevents-attrib.module "INCLUDE" > +<![%svg-graphevents-attrib.module;[ +<!ENTITY % svg-graphevents-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphical Element Events Attribute//EN" + "svg-graphevents-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Graphical Element Events Attribute Module ..................... --> +<!-- file: svg-graphevents-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphical Element Events Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-graphevents-attrib.mod" + + ....................................................................... --> + +<!-- Graphical Element Events Attribute + + onfocusin, onfocusout, onactivate, onclick, onmousedown, onmouseup, + onmouseover, onmousemove, onmouseout, onload + + This module defines the GraphicalEvents attribute set. +--> + +<!ENTITY % SVG.onfocusin.attrib + "onfocusin %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onfocusout.attrib + "onfocusout %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onactivate.attrib + "onactivate %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onclick.attrib + "onclick %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onmousedown.attrib + "onmousedown %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onmouseup.attrib + "onmouseup %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onmouseover.attrib + "onmouseover %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onmousemove.attrib + "onmousemove %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onmouseout.attrib + "onmouseout %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onload.attrib + "onload %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.GraphicalEvents.extra.attrib "" > + +<!ENTITY % SVG.GraphicalEvents.attrib + "%SVG.onfocusin.attrib; + %SVG.onfocusout.attrib; + %SVG.onactivate.attrib; + %SVG.onclick.attrib; + %SVG.onmousedown.attrib; + %SVG.onmouseup.attrib; + %SVG.onmouseover.attrib; + %SVG.onmousemove.attrib; + %SVG.onmouseout.attrib; + %SVG.onload.attrib; + %SVG.GraphicalEvents.extra.attrib;" +> + +<!-- end of svg-graphevents-attrib.mod --> +]]> + +<!-- Animation Events Attribute Module ........................... --> +<!ENTITY % svg-animevents-attrib.module "INCLUDE" > +<![%svg-animevents-attrib.module;[ +<!ENTITY % svg-animevents-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 Animation Events Attribute//EN" + "svg-animevents-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Animation Events Attribute Module ............................. --> +<!-- file: svg-animevents-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 Animation Events Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-animevents-attrib.mod" + + ....................................................................... --> + +<!-- Animation Events Attribute + + onbegin, onend, onrepeat, onload + + This module defines the AnimationEvents attribute set. +--> + +<!ENTITY % SVG.onbegin.attrib + "onbegin %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onend.attrib + "onend %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onrepeat.attrib + "onrepeat %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.onload.attrib + "onload %Script.datatype; #IMPLIED" +> + +<!ENTITY % SVG.AnimationEvents.extra.attrib "" > + +<!ENTITY % SVG.AnimationEvents.attrib + "%SVG.onbegin.attrib; + %SVG.onend.attrib; + %SVG.onrepeat.attrib; + %SVG.onload.attrib; + %SVG.AnimationEvents.extra.attrib;" +> + +<!-- end of svg-animevents-attrib.mod --> +]]> + +<!-- XLink Attribute Module ...................................... --> +<!ENTITY % svg-xlink-attrib.module "INCLUDE" > +<![%svg-xlink-attrib.module;[ +<!ENTITY % svg-xlink-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 XLink Attribute//EN" + "svg-xlink-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 XLink Attribute Module ........................................ --> +<!-- file: svg-xlink-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 XLink Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-xlink-attrib.mod" + + ....................................................................... --> + +<!-- XLink Attribute + + type, href, role, arcrole, title, show, actuate + + This module defines the XLink, XLinkRequired, XLinkEmbed, and + XLinkReplace attribute set. +--> + +<!ENTITY % SVG.XLink.extra.attrib "" > + +<!ENTITY % SVG.XLink.attrib + "%XLINK.xmlns.attrib; + %XLINK.pfx;type ( simple ) #FIXED 'simple' + %XLINK.pfx;href %URI.datatype; #IMPLIED + %XLINK.pfx;role %URI.datatype; #IMPLIED + %XLINK.pfx;arcrole %URI.datatype; #IMPLIED + %XLINK.pfx;title CDATA #IMPLIED + %XLINK.pfx;show ( other ) 'other' + %XLINK.pfx;actuate ( onLoad ) #FIXED 'onLoad' + %SVG.XLink.extra.attrib;" +> + +<!ENTITY % SVG.XLinkRequired.extra.attrib "" > + +<!ENTITY % SVG.XLinkRequired.attrib + "%XLINK.xmlns.attrib; + %XLINK.pfx;type ( simple ) #FIXED 'simple' + %XLINK.pfx;href %URI.datatype; #REQUIRED + %XLINK.pfx;role %URI.datatype; #IMPLIED + %XLINK.pfx;arcrole %URI.datatype; #IMPLIED + %XLINK.pfx;title CDATA #IMPLIED + %XLINK.pfx;show ( other ) 'other' + %XLINK.pfx;actuate ( onLoad ) #FIXED 'onLoad' + %SVG.XLinkRequired.extra.attrib;" +> + +<!ENTITY % SVG.XLinkEmbed.extra.attrib "" > + +<!ENTITY % SVG.XLinkEmbed.attrib + "%XLINK.xmlns.attrib; + %XLINK.pfx;type ( simple ) #FIXED 'simple' + %XLINK.pfx;href %URI.datatype; #REQUIRED + %XLINK.pfx;role %URI.datatype; #IMPLIED + %XLINK.pfx;arcrole %URI.datatype; #IMPLIED + %XLINK.pfx;title CDATA #IMPLIED + %XLINK.pfx;show ( embed ) 'embed' + %XLINK.pfx;actuate ( onLoad ) #FIXED 'onLoad' + %SVG.XLinkEmbed.extra.attrib;" +> + +<!ENTITY % SVG.XLinkReplace.extra.attrib "" > + +<!ENTITY % SVG.XLinkReplace.attrib + "%XLINK.xmlns.attrib; + %XLINK.pfx;type ( simple ) #FIXED 'simple' + %XLINK.pfx;href %URI.datatype; #REQUIRED + %XLINK.pfx;role %URI.datatype; #IMPLIED + %XLINK.pfx;arcrole %URI.datatype; #IMPLIED + %XLINK.pfx;title CDATA #IMPLIED + %XLINK.pfx;show ( new | replace ) 'replace' + %XLINK.pfx;actuate ( onRequest ) #FIXED 'onRequest' + %SVG.XLinkReplace.extra.attrib;" +> + +<!-- end of svg-xlink-attrib.mod --> +]]> + +<!-- External Resources Attribute Module ......................... --> +<!ENTITY % svg-extresources-attrib.module "INCLUDE" > +<![%svg-extresources-attrib.module;[ +<!ENTITY % svg-extresources-attrib.mod + PUBLIC "-//W3C//ENTITIES SVG 1.1 External Resources Attribute//EN" + "svg-extresources-attrib.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 External Resources Attribute Module ........................... --> +<!-- file: svg-extresources-attrib.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES SVG 1.1 External Resources Attribute//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-extresources-attrib.mod" + + ....................................................................... --> + +<!-- External Resources Attribute + + externalResourcesRequired + + This module defines the External attribute set. +--> + +<!ENTITY % SVG.externalResourcesRequired.attrib + "externalResourcesRequired %Boolean.datatype; #IMPLIED" +> + +<!ENTITY % SVG.External.extra.attrib "" > + +<!ENTITY % SVG.External.attrib + "%SVG.externalResourcesRequired.attrib; + %SVG.External.extra.attrib;" +> + +<!-- end of svg-extresources-attrib.mod --> +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Structure Module ............................................ --> +<!ENTITY % svg-structure.module "INCLUDE" > +<![%svg-structure.module;[ +<!ENTITY % svg-structure.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Structure//EN" + "svg-structure.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Structure Module .............................................. --> +<!-- file: svg-structure.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Structure//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-structure.mod" + + ....................................................................... --> + +<!-- Structure + + svg, g, defs, desc, title, metadata, symbol, use + + This module declares the major structural elements and their attributes. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.svg.qname "svg" > +<!ENTITY % SVG.g.qname "g" > +<!ENTITY % SVG.defs.qname "defs" > +<!ENTITY % SVG.desc.qname "desc" > +<!ENTITY % SVG.title.qname "title" > +<!ENTITY % SVG.metadata.qname "metadata" > +<!ENTITY % SVG.symbol.qname "symbol" > +<!ENTITY % SVG.use.qname "use" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.DocumentEvents.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLinkEmbed.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Description.class ............................. --> + +<!ENTITY % SVG.Description.extra.class "" > + +<!ENTITY % SVG.Description.class + "%SVG.desc.qname; | %SVG.title.qname; | %SVG.metadata.qname; + %SVG.Description.extra.class;" +> + +<!-- SVG.Use.class ..................................... --> + +<!ENTITY % SVG.Use.extra.class "" > + +<!ENTITY % SVG.Use.class + "| %SVG.use.qname; %SVG.Use.extra.class;" +> + +<!-- SVG.Structure.class ............................... --> + +<!ENTITY % SVG.Structure.extra.class "" > + +<!ENTITY % SVG.Structure.class + "| %SVG.svg.qname; | %SVG.g.qname; | %SVG.defs.qname; | %SVG.symbol.qname; + %SVG.Use.class; %SVG.Structure.extra.class;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- svg: SVG Document Element ......................... --> + +<!ENTITY % SVG.svg.element "INCLUDE" > +<![%SVG.svg.element;[ +<!ENTITY % SVG.svg.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.svg.qname; %SVG.svg.content; > +<!-- end of SVG.svg.element -->]]> + +<!ENTITY % SVG.svg.attlist "INCLUDE" > +<![%SVG.svg.attlist;[ +<!ATTLIST %SVG.svg.qname; + %SVG.xmlns.attrib; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.DocumentEvents.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + viewBox %ViewBoxSpec.datatype; #IMPLIED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' + zoomAndPan ( disable | magnify ) 'magnify' + version %Number.datatype; #FIXED '1.1' + baseProfile %Text.datatype; #IMPLIED + contentScriptType %ContentType.datatype; 'text/ecmascript' + contentStyleType %ContentType.datatype; 'text/css' +> +<!-- end of SVG.svg.attlist -->]]> + +<!-- g: Group Element .................................. --> + +<!ENTITY % SVG.g.element "INCLUDE" > +<![%SVG.g.element;[ +<!ENTITY % SVG.g.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.g.qname; %SVG.g.content; > +<!-- end of SVG.g.element -->]]> + +<!ENTITY % SVG.g.attlist "INCLUDE" > +<![%SVG.g.attlist;[ +<!ATTLIST %SVG.g.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.g.attlist -->]]> + +<!-- defs: Definisions Element ......................... --> + +<!ENTITY % SVG.defs.element "INCLUDE" > +<![%SVG.defs.element;[ +<!ENTITY % SVG.defs.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.defs.qname; %SVG.defs.content; > +<!-- end of SVG.defs.element -->]]> + +<!ENTITY % SVG.defs.attlist "INCLUDE" > +<![%SVG.defs.attlist;[ +<!ATTLIST %SVG.defs.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.defs.attlist -->]]> + +<!-- desc: Description Element ......................... --> + +<!ENTITY % SVG.desc.element "INCLUDE" > +<![%SVG.desc.element;[ +<!ENTITY % SVG.desc.content "( #PCDATA )" > +<!ELEMENT %SVG.desc.qname; %SVG.desc.content; > +<!-- end of SVG.desc.element -->]]> + +<!ENTITY % SVG.desc.attlist "INCLUDE" > +<![%SVG.desc.attlist;[ +<!ATTLIST %SVG.desc.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; +> +<!-- end of SVG.desc.attlist -->]]> + +<!-- title: Title Element .............................. --> + +<!ENTITY % SVG.title.element "INCLUDE" > +<![%SVG.title.element;[ +<!ENTITY % SVG.title.content "( #PCDATA )" > +<!ELEMENT %SVG.title.qname; %SVG.title.content; > +<!-- end of SVG.title.element -->]]> + +<!ENTITY % SVG.title.attlist "INCLUDE" > +<![%SVG.title.attlist;[ +<!ATTLIST %SVG.title.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; +> +<!-- end of SVG.title.attlist -->]]> + +<!-- metadata: Metadata Element ........................ --> + +<!ENTITY % SVG.metadata.element "INCLUDE" > +<![%SVG.metadata.element;[ +<!ENTITY % SVG.metadata.content "EMPTY" > +<!ELEMENT %SVG.metadata.qname; %SVG.metadata.content; > +<!-- end of SVG.metadata.element -->]]> + +<!ENTITY % SVG.metadata.attlist "INCLUDE" > +<![%SVG.metadata.attlist;[ +<!ATTLIST %SVG.metadata.qname; + %SVG.Core.attrib; +> +<!-- end of SVG.metadata.attlist -->]]> + +<!-- symbol: Symbol Element ............................ --> + +<!ENTITY % SVG.symbol.element "INCLUDE" > +<![%SVG.symbol.element;[ +<!ENTITY % SVG.symbol.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.symbol.qname; %SVG.symbol.content; > +<!-- end of SVG.symbol.element -->]]> + +<!ENTITY % SVG.symbol.attlist "INCLUDE" > +<![%SVG.symbol.attlist;[ +<!ATTLIST %SVG.symbol.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + viewBox %ViewBoxSpec.datatype; #IMPLIED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' +> +<!-- end of SVG.symbol.attlist -->]]> + +<!-- use: Use Element .................................. --> + +<!ENTITY % SVG.use.element "INCLUDE" > +<![%SVG.use.element;[ +<!ENTITY % SVG.use.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.use.qname; %SVG.use.content; > +<!-- end of SVG.use.element -->]]> + +<!ENTITY % SVG.use.attlist "INCLUDE" > +<![%SVG.use.attlist;[ +<!ATTLIST %SVG.use.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.XLinkEmbed.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.use.attlist -->]]> + +<!-- end of svg-structure.mod --> +]]> + +<!-- Conditional Processing Module ............................... --> +<!ENTITY % svg-conditional.module "INCLUDE" > +<![%svg-conditional.module;[ +<!ENTITY % svg-conditional.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Conditional Processing//EN" + "svg-conditional.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Conditional Processing Module ................................. --> +<!-- file: svg-conditional.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Conditional Processing//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-conditional.mod" + + ....................................................................... --> + +<!-- Conditional Processing + + switch + + This module declares markup to provide support for conditional processing. +--> + +<!-- extension list specification --> +<!ENTITY % ExtensionList.datatype "CDATA" > + +<!-- feature list specification --> +<!ENTITY % FeatureList.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.switch.qname "switch" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Conditional.class ............................. --> + +<!ENTITY % SVG.Conditional.extra.class "" > + +<!ENTITY % SVG.Conditional.class + "| %SVG.switch.qname; %SVG.Conditional.extra.class;" +> + +<!-- SVG.Conditional.attrib ............................ --> + +<!ENTITY % SVG.Conditional.extra.attrib "" > + +<!ENTITY % SVG.Conditional.attrib + "requiredFeatures %FeatureList.datatype; #IMPLIED + requiredExtensions %ExtensionList.datatype; #IMPLIED + systemLanguage %LanguageCodes.datatype; #IMPLIED + %SVG.Conditional.extra.attrib;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- switch: Switch Element ............................ --> + +<!ENTITY % SVG.switch.element "INCLUDE" > +<![%SVG.switch.element;[ +<!ENTITY % SVG.switch.content + "(( %SVG.Description.class; )*, ( %SVG.svg.qname; | %SVG.g.qname; + | %SVG.use.qname; | %SVG.text.qname; | %SVG.Animation.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Shape.class; + %SVG.Hyperlink.class; %SVG.Extensibility.class; )*)" +> +<!ELEMENT %SVG.switch.qname; %SVG.switch.content; > +<!-- end of SVG.switch.element -->]]> + +<!ENTITY % SVG.switch.attlist "INCLUDE" > +<![%SVG.switch.attlist;[ +<!ATTLIST %SVG.switch.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.switch.attlist -->]]> + +<!-- end of svg-conditional.mod --> +]]> + +<!-- Image Module ................................................ --> +<!ENTITY % svg-image.module "INCLUDE" > +<![%svg-image.module;[ +<!ENTITY % svg-image.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Image//EN" + "svg-image.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Image Module .................................................. --> +<!-- file: svg-image.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Image//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-image.mod" + + ....................................................................... --> + +<!-- Image + + image + + This module declares markup to provide support for image. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.image.qname "image" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLinkEmbed.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Image.class ................................... --> + +<!ENTITY % SVG.Image.extra.class "" > + +<!ENTITY % SVG.Image.class + "| %SVG.image.qname; %SVG.Image.extra.class;" +> + +<!-- image: Image Element .............................. --> + +<!ENTITY % SVG.image.element "INCLUDE" > +<![%SVG.image.element;[ +<!ENTITY % SVG.image.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.image.qname; %SVG.image.content; > +<!-- end of SVG.image.element -->]]> + +<!ENTITY % SVG.image.attlist "INCLUDE" > +<![%SVG.image.attlist;[ +<!ATTLIST %SVG.image.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Viewport.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Profile.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.XLinkEmbed.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #REQUIRED + height %Length.datatype; #REQUIRED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.image.attlist -->]]> + +<!-- end of svg-image.mod --> +]]> + +<!-- Style Module ................................................ --> +<!ENTITY % svg-style.module "INCLUDE" > +<![%svg-style.module;[ +<!ENTITY % svg-style.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Style//EN" + "svg-style.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Style Module .................................................. --> +<!-- file: svg-style.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Style//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-style.mod" + + ....................................................................... --> + +<!-- Style + + style + + This module declares markup to provide support for stylesheet. +--> + +<!-- list of classes --> +<!ENTITY % ClassList.datatype "CDATA" > + +<!-- comma-separated list of media descriptors. --> +<!ENTITY % MediaDesc.datatype "CDATA" > + +<!-- style sheet data --> +<!ENTITY % StyleSheet.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.style.qname "style" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > + +<!-- SVG.Style.class ................................... --> + +<!ENTITY % SVG.Style.extra.class "" > + +<!ENTITY % SVG.Style.class + "| %SVG.style.qname; %SVG.Style.extra.class;" +> + +<!-- SVG.Style.attrib .................................. --> + +<!ENTITY % SVG.Style.extra.attrib "" > + +<!ENTITY % SVG.Style.attrib + "style %StyleSheet.datatype; #IMPLIED + class %ClassList.datatype; #IMPLIED + %SVG.Style.extra.attrib;" +> + +<!-- style: Style Element .............................. --> + +<!ENTITY % SVG.style.element "INCLUDE" > +<![%SVG.style.element;[ +<!ENTITY % SVG.style.content "( #PCDATA )" > +<!ELEMENT %SVG.style.qname; %SVG.style.content; > +<!-- end of SVG.style.element -->]]> + +<!ENTITY % SVG.style.attlist "INCLUDE" > +<![%SVG.style.attlist;[ +<!ATTLIST %SVG.style.qname; + xml:space ( preserve ) #FIXED 'preserve' + %SVG.Core.attrib; + type %ContentType.datatype; #REQUIRED + media %MediaDesc.datatype; #IMPLIED + title %Text.datatype; #IMPLIED +> +<!-- end of SVG.style.attlist -->]]> + +<!-- end of svg-style.mod --> +]]> + +<!-- Shape Module ................................................ --> +<!ENTITY % svg-shape.module "INCLUDE" > +<![%svg-shape.module;[ +<!ENTITY % svg-shape.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Shape//EN" + "svg-shape.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Shape Module .................................................. --> +<!-- file: svg-shape.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Shape//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-shape.mod" + + ....................................................................... --> + +<!-- Shape + + path, rect, circle, line, ellipse, polyline, polygon + + This module declares markup to provide support for graphical shapes. +--> + +<!-- a list of points --> +<!ENTITY % Points.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.path.qname "path" > +<!ENTITY % SVG.rect.qname "rect" > +<!ENTITY % SVG.circle.qname "circle" > +<!ENTITY % SVG.line.qname "line" > +<!ENTITY % SVG.ellipse.qname "ellipse" > +<!ENTITY % SVG.polyline.qname "polyline" > +<!ENTITY % SVG.polygon.qname "polygon" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Shape.class ................................... --> + +<!ENTITY % SVG.Shape.extra.class "" > + +<!ENTITY % SVG.Shape.class + "| %SVG.path.qname; | %SVG.rect.qname; | %SVG.circle.qname; + | %SVG.line.qname; | %SVG.ellipse.qname; | %SVG.polyline.qname; + | %SVG.polygon.qname; %SVG.Shape.extra.class;" +> + +<!-- path: Path Element ................................ --> + +<!ENTITY % SVG.path.element "INCLUDE" > +<![%SVG.path.element;[ +<!ENTITY % SVG.path.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.path.qname; %SVG.path.content; > +<!-- end of SVG.path.element -->]]> + +<!ENTITY % SVG.path.attlist "INCLUDE" > +<![%SVG.path.attlist;[ +<!ATTLIST %SVG.path.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + d %PathData.datatype; #REQUIRED + pathLength %Number.datatype; #IMPLIED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.path.attlist -->]]> + +<!-- rect: Rectangle Element ........................... --> + +<!ENTITY % SVG.rect.element "INCLUDE" > +<![%SVG.rect.element;[ +<!ENTITY % SVG.rect.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.rect.qname; %SVG.rect.content; > +<!-- end of SVG.rect.element -->]]> + +<!ENTITY % SVG.rect.attlist "INCLUDE" > +<![%SVG.rect.attlist;[ +<!ATTLIST %SVG.rect.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #REQUIRED + height %Length.datatype; #REQUIRED + rx %Length.datatype; #IMPLIED + ry %Length.datatype; #IMPLIED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.rect.attlist -->]]> + +<!-- circle: Circle Element ............................ --> + +<!ENTITY % SVG.circle.element "INCLUDE" > +<![%SVG.circle.element;[ +<!ENTITY % SVG.circle.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.circle.qname; %SVG.circle.content; > +<!-- end of SVG.circle.element -->]]> + +<!ENTITY % SVG.circle.attlist "INCLUDE" > +<![%SVG.circle.attlist;[ +<!ATTLIST %SVG.circle.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + cx %Coordinate.datatype; #IMPLIED + cy %Coordinate.datatype; #IMPLIED + r %Length.datatype; #REQUIRED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.circle.attlist -->]]> + +<!-- line: Line Element ................................ --> + +<!ENTITY % SVG.line.element "INCLUDE" > +<![%SVG.line.element;[ +<!ENTITY % SVG.line.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.line.qname; %SVG.line.content; > +<!-- end of SVG.line.element -->]]> + +<!ENTITY % SVG.line.attlist "INCLUDE" > +<![%SVG.line.attlist;[ +<!ATTLIST %SVG.line.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + x1 %Coordinate.datatype; #IMPLIED + y1 %Coordinate.datatype; #IMPLIED + x2 %Coordinate.datatype; #IMPLIED + y2 %Coordinate.datatype; #IMPLIED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.line.attlist -->]]> + +<!-- ellipse: Ellipse Element .......................... --> + +<!ENTITY % SVG.ellipse.element "INCLUDE" > +<![%SVG.ellipse.element;[ +<!ENTITY % SVG.ellipse.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.ellipse.qname; %SVG.ellipse.content; > +<!-- end of SVG.ellipse.element -->]]> + +<!ENTITY % SVG.ellipse.attlist "INCLUDE" > +<![%SVG.ellipse.attlist;[ +<!ATTLIST %SVG.ellipse.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + cx %Coordinate.datatype; #IMPLIED + cy %Coordinate.datatype; #IMPLIED + rx %Length.datatype; #REQUIRED + ry %Length.datatype; #REQUIRED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.ellipse.attlist -->]]> + +<!-- polyline: Polyline Element ........................ --> + +<!ENTITY % SVG.polyline.element "INCLUDE" > +<![%SVG.polyline.element;[ +<!ENTITY % SVG.polyline.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.polyline.qname; %SVG.polyline.content; > +<!-- end of SVG.polyline.element -->]]> + +<!ENTITY % SVG.polyline.attlist "INCLUDE" > +<![%SVG.polyline.attlist;[ +<!ATTLIST %SVG.polyline.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + points %Points.datatype; #REQUIRED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.polyline.attlist -->]]> + +<!-- polygon: Polygon Element .......................... --> + +<!ENTITY % SVG.polygon.element "INCLUDE" > +<![%SVG.polygon.element;[ +<!ENTITY % SVG.polygon.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)" +> +<!ELEMENT %SVG.polygon.qname; %SVG.polygon.content; > +<!-- end of SVG.polygon.element -->]]> + +<!ENTITY % SVG.polygon.attlist "INCLUDE" > +<![%SVG.polygon.attlist;[ +<!ATTLIST %SVG.polygon.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + points %Points.datatype; #REQUIRED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.polygon.attlist -->]]> + +<!-- end of svg-shape.mod --> +]]> + +<!-- Text Module ................................................. --> +<!ENTITY % svg-text.module "INCLUDE" > +<![%svg-text.module;[ +<!ENTITY % svg-text.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Text//EN" + "svg-text.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Text Module ................................................... --> +<!-- file: svg-text.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Text//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-text.mod" + + ....................................................................... --> + +<!-- Text + + text, tspan, tref, textPath, altGlyph, altGlyphDef, altGlyphItem, + glyphRef + + This module declares markup to provide support for alternate glyph. +--> + +<!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) --> +<!ENTITY % BaselineShiftValue.datatype "CDATA" > + +<!-- 'font-family' property/attribute value (i.e., list of fonts) --> +<!ENTITY % FontFamilyValue.datatype "CDATA" > + +<!-- 'font-size' property/attribute value --> +<!ENTITY % FontSizeValue.datatype "CDATA" > + +<!-- 'font-size-adjust' property/attribute value --> +<!ENTITY % FontSizeAdjustValue.datatype "CDATA" > + +<!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) --> +<!ENTITY % GlyphOrientationHorizontalValue.datatype "CDATA" > + +<!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) --> +<!ENTITY % GlyphOrientationVerticalValue.datatype "CDATA" > + +<!-- 'kerning' property/attribute value (e.g., 'auto', <length>) --> +<!ENTITY % KerningValue.datatype "CDATA" > + +<!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., 'normal', <length>) --> +<!ENTITY % SpacingValue.datatype "CDATA" > + +<!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') --> +<!ENTITY % TextDecorationValue.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.text.qname "text" > +<!ENTITY % SVG.tspan.qname "tspan" > +<!ENTITY % SVG.tref.qname "tref" > +<!ENTITY % SVG.textPath.qname "textPath" > +<!ENTITY % SVG.altGlyph.qname "altGlyph" > +<!ENTITY % SVG.altGlyphDef.qname "altGlyphDef" > +<!ENTITY % SVG.altGlyphItem.qname "altGlyphItem" > +<!ENTITY % SVG.glyphRef.qname "glyphRef" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.XLinkRequired.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Text.class .................................... --> + +<!ENTITY % SVG.Text.extra.class "" > + +<!ENTITY % SVG.Text.class + "| %SVG.text.qname; | %SVG.altGlyphDef.qname; %SVG.Text.extra.class;" +> + +<!-- SVG.TextContent.class ............................. --> + +<!ENTITY % SVG.TextContent.extra.class "" > + +<!ENTITY % SVG.TextContent.class + "| %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.textPath.qname; + | %SVG.altGlyph.qname; %SVG.TextContent.extra.class;" +> + +<!-- SVG.Text.attrib ................................... --> + +<!ENTITY % SVG.Text.extra.attrib "" > + +<!ENTITY % SVG.Text.attrib + "writing-mode ( lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit ) #IMPLIED + %SVG.Text.extra.attrib;" +> + +<!-- SVG.TextContent.attrib ............................ --> + +<!ENTITY % SVG.TextContent.extra.attrib "" > + +<!ENTITY % SVG.TextContent.attrib + "alignment-baseline ( auto | baseline | before-edge | text-before-edge | + middle | central | after-edge | text-after-edge | + ideographic | alphabetic | hanging | mathematical | + inherit ) #IMPLIED + baseline-shift %BaselineShiftValue.datatype; #IMPLIED + direction ( ltr | rtl | inherit ) #IMPLIED + dominant-baseline ( auto | use-script | no-change | reset-size | + ideographic | alphabetic | hanging | mathematical | + central | middle | text-after-edge | text-before-edge | + inherit ) #IMPLIED + glyph-orientation-horizontal %GlyphOrientationHorizontalValue.datatype; + #IMPLIED + glyph-orientation-vertical %GlyphOrientationVerticalValue.datatype; + #IMPLIED + kerning %KerningValue.datatype; #IMPLIED + letter-spacing %SpacingValue.datatype; #IMPLIED + text-anchor ( start | middle | end | inherit ) #IMPLIED + text-decoration %TextDecorationValue.datatype; #IMPLIED + unicode-bidi ( normal | embed | bidi-override | inherit ) #IMPLIED + word-spacing %SpacingValue.datatype; #IMPLIED + %SVG.TextContent.extra.attrib;" +> + +<!-- SVG.Font.attrib ................................... --> + +<!ENTITY % SVG.Font.extra.attrib "" > + +<!ENTITY % SVG.Font.attrib + "font-family %FontFamilyValue.datatype; #IMPLIED + font-size %FontSizeValue.datatype; #IMPLIED + font-size-adjust %FontSizeAdjustValue.datatype; #IMPLIED + font-stretch ( normal | wider | narrower | ultra-condensed | + extra-condensed | condensed | semi-condensed | + semi-expanded | expanded | extra-expanded | + ultra-expanded | inherit ) #IMPLIED + font-style ( normal | italic | oblique | inherit ) #IMPLIED + font-variant ( normal | small-caps | inherit ) #IMPLIED + font-weight ( normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | + 500 | 600 | 700 | 800 | 900 | inherit ) #IMPLIED + %SVG.Font.extra.attrib;" +> + +<!-- text: Text Element ................................ --> + +<!ENTITY % SVG.text.element "INCLUDE" > +<![%SVG.text.element;[ +<!ENTITY % SVG.text.content + "( #PCDATA | %SVG.Description.class; | %SVG.Animation.class; + %SVG.TextContent.class; %SVG.Hyperlink.class; )*" +> +<!ELEMENT %SVG.text.qname; %SVG.text.content; > +<!-- end of SVG.text.element -->]]> + +<!ENTITY % SVG.text.attlist "INCLUDE" > +<![%SVG.text.attlist;[ +<!ATTLIST %SVG.text.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + x %Coordinates.datatype; #IMPLIED + y %Coordinates.datatype; #IMPLIED + dx %Lengths.datatype; #IMPLIED + dy %Lengths.datatype; #IMPLIED + rotate %Numbers.datatype; #IMPLIED + textLength %Length.datatype; #IMPLIED + lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.text.attlist -->]]> + +<!-- tspan: Text Span Element .......................... --> + +<!ENTITY % SVG.tspan.element "INCLUDE" > +<![%SVG.tspan.element;[ +<!ENTITY % SVG.tspan.content + "( #PCDATA | %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.altGlyph.qname; + | %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; + | %SVG.Description.class; %SVG.Hyperlink.class; )*" +> +<!ELEMENT %SVG.tspan.qname; %SVG.tspan.content; > +<!-- end of SVG.tspan.element -->]]> + +<!ENTITY % SVG.tspan.attlist "INCLUDE" > +<![%SVG.tspan.attlist;[ +<!ATTLIST %SVG.tspan.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + x %Coordinates.datatype; #IMPLIED + y %Coordinates.datatype; #IMPLIED + dx %Lengths.datatype; #IMPLIED + dy %Lengths.datatype; #IMPLIED + rotate %Numbers.datatype; #IMPLIED + textLength %Length.datatype; #IMPLIED + lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED +> +<!-- end of SVG.tspan.attlist -->]]> + +<!-- tref: Text Reference Element ...................... --> + +<!ENTITY % SVG.tref.element "INCLUDE" > +<![%SVG.tref.element;[ +<!ENTITY % SVG.tref.content + "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; + | %SVG.Description.class; )*" +> +<!ELEMENT %SVG.tref.qname; %SVG.tref.content; > +<!-- end of SVG.tref.element -->]]> + +<!ENTITY % SVG.tref.attlist "INCLUDE" > +<![%SVG.tref.attlist;[ +<!ATTLIST %SVG.tref.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.XLinkRequired.attrib; + %SVG.External.attrib; + x %Coordinates.datatype; #IMPLIED + y %Coordinates.datatype; #IMPLIED + dx %Lengths.datatype; #IMPLIED + dy %Lengths.datatype; #IMPLIED + rotate %Numbers.datatype; #IMPLIED + textLength %Length.datatype; #IMPLIED + lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED +> +<!-- end of SVG.tref.attlist -->]]> + +<!-- textPath: Text Path Element ....................... --> + +<!ENTITY % SVG.textPath.element "INCLUDE" > +<![%SVG.textPath.element;[ +<!ENTITY % SVG.textPath.content + "( #PCDATA | %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.altGlyph.qname; + | %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; + | %SVG.Description.class; %SVG.Hyperlink.class; )*" +> +<!ELEMENT %SVG.textPath.qname; %SVG.textPath.content; > +<!-- end of SVG.textPath.element -->]]> + +<!ENTITY % SVG.textPath.attlist "INCLUDE" > +<![%SVG.textPath.attlist;[ +<!ATTLIST %SVG.textPath.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.XLinkRequired.attrib; + %SVG.External.attrib; + startOffset %Length.datatype; #IMPLIED + textLength %Length.datatype; #IMPLIED + lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED + method ( align | stretch ) #IMPLIED + spacing ( auto | exact ) #IMPLIED +> +<!-- end of SVG.textPath.attlist -->]]> + +<!-- altGlyph: Alternate Glyph Element ................. --> + +<!ENTITY % SVG.altGlyph.element "INCLUDE" > +<![%SVG.altGlyph.element;[ +<!ENTITY % SVG.altGlyph.content + "( #PCDATA )" +> +<!ELEMENT %SVG.altGlyph.qname; %SVG.altGlyph.content; > +<!-- end of SVG.altGlyph.element -->]]> + +<!ENTITY % SVG.altGlyph.attlist "INCLUDE" > +<![%SVG.altGlyph.attlist;[ +<!ATTLIST %SVG.altGlyph.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.Cursor.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + x %Coordinates.datatype; #IMPLIED + y %Coordinates.datatype; #IMPLIED + dx %Lengths.datatype; #IMPLIED + dy %Lengths.datatype; #IMPLIED + glyphRef CDATA #IMPLIED + format CDATA #IMPLIED + rotate %Numbers.datatype; #IMPLIED +> +<!-- end of SVG.altGlyph.attlist -->]]> + +<!-- altGlyphDef: Alternate Glyph Definition Element ... --> + +<!ENTITY % SVG.altGlyphDef.element "INCLUDE" > +<![%SVG.altGlyphDef.element;[ +<!ENTITY % SVG.altGlyphDef.content + "( %SVG.glyphRef.qname;+ | %SVG.altGlyphItem.qname;+ )" +> +<!ELEMENT %SVG.altGlyphDef.qname; %SVG.altGlyphDef.content; > +<!-- end of SVG.altGlyphDef.element -->]]> + +<!ENTITY % SVG.altGlyphDef.attlist "INCLUDE" > +<![%SVG.altGlyphDef.attlist;[ +<!ATTLIST %SVG.altGlyphDef.qname; + %SVG.Core.attrib; +> +<!-- end of SVG.altGlyphDef.attlist -->]]> + +<!-- altGlyphItem: Alternate Glyph Item Element ........ --> + +<!ENTITY % SVG.altGlyphItem.element "INCLUDE" > +<![%SVG.altGlyphItem.element;[ +<!ENTITY % SVG.altGlyphItem.content + "( %SVG.glyphRef.qname;+ )" +> +<!ELEMENT %SVG.altGlyphItem.qname; %SVG.altGlyphItem.content; > +<!-- end of SVG.altGlyphItem.element -->]]> + +<!ENTITY % SVG.altGlyphItem.attlist "INCLUDE" > +<![%SVG.altGlyphItem.attlist;[ +<!ATTLIST %SVG.altGlyphItem.qname; + %SVG.Core.attrib; +> +<!-- end of SVG.altGlyphItem.attlist -->]]> + +<!-- glyphRef: Glyph Reference Element ................. --> + +<!ENTITY % SVG.glyphRef.element "INCLUDE" > +<![%SVG.glyphRef.element;[ +<!ENTITY % SVG.glyphRef.content "EMPTY" > +<!ELEMENT %SVG.glyphRef.qname; %SVG.glyphRef.content; > +<!-- end of SVG.glyphRef.element -->]]> + +<!ENTITY % SVG.glyphRef.attlist "INCLUDE" > +<![%SVG.glyphRef.attlist;[ +<!ATTLIST %SVG.glyphRef.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Font.attrib; + %SVG.XLink.attrib; + x %Number.datatype; #IMPLIED + y %Number.datatype; #IMPLIED + dx %Number.datatype; #IMPLIED + dy %Number.datatype; #IMPLIED + glyphRef CDATA #IMPLIED + format CDATA #IMPLIED +> +<!-- end of SVG.glyphRef.attlist -->]]> + +<!-- end of svg-text.mod --> +]]> + +<!-- Marker Module ............................................... --> +<!ENTITY % svg-marker.module "INCLUDE" > +<![%svg-marker.module;[ +<!ENTITY % svg-marker.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Marker//EN" + "svg-marker.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Marker Module ................................................. --> +<!-- file: svg-marker.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Marker//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-marker.mod" + + ....................................................................... --> + +<!-- Marker + + marker + + This module declares markup to provide support for marker. +--> + +<!-- 'marker' property/attribute value (e.g., 'none', <uri>) --> +<!ENTITY % MarkerValue.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.marker.qname "marker" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Marker.class .................................. --> + +<!ENTITY % SVG.Marker.extra.class "" > + +<!ENTITY % SVG.Marker.class + "| %SVG.marker.qname; %SVG.Marker.extra.class;" +> + +<!-- SVG.Marker.attrib ................................. --> + +<!ENTITY % SVG.Marker.extra.attrib "" > + +<!ENTITY % SVG.Marker.attrib + "marker-start %MarkerValue.datatype; #IMPLIED + marker-mid %MarkerValue.datatype; #IMPLIED + marker-end %MarkerValue.datatype; #IMPLIED + %SVG.Marker.extra.attrib;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- marker: Marker Element ............................ --> + +<!ENTITY % SVG.marker.element "INCLUDE" > +<![%SVG.marker.element;[ +<!ENTITY % SVG.marker.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.marker.qname; %SVG.marker.content; > +<!-- end of SVG.marker.element -->]]> + +<!ENTITY % SVG.marker.attlist "INCLUDE" > +<![%SVG.marker.attlist;[ +<!ATTLIST %SVG.marker.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.External.attrib; + refX %Coordinate.datatype; #IMPLIED + refY %Coordinate.datatype; #IMPLIED + markerUnits ( strokeWidth | userSpaceOnUse ) #IMPLIED + markerWidth %Length.datatype; #IMPLIED + markerHeight %Length.datatype; #IMPLIED + orient CDATA #IMPLIED + viewBox %ViewBoxSpec.datatype; #IMPLIED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' +> +<!-- end of SVG.marker.attlist -->]]> + +<!-- end of svg-marker.mod --> +]]> + +<!-- Color Profile Module ........................................ --> +<!ENTITY % svg-profile.module "INCLUDE" > +<![%svg-profile.module;[ +<!ENTITY % svg-profile.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Color Profile//EN" + "svg-profile.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Color Profile Module .......................................... --> +<!-- file: svg-profile.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Color Profile//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-profile.mod" + + ....................................................................... --> + +<!-- Color Profile + + color-profile + + This module declares markup to provide support for color profile. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.color-profile.qname "color-profile" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > + +<!-- SVG.Profile.class ................................. --> + +<!ENTITY % SVG.Profile.extra.class "" > + +<!ENTITY % SVG.Profile.class + "| %SVG.color-profile.qname; %SVG.Profile.extra.class;" +> + +<!-- SVG.Profile.attrib ................................ --> + +<!ENTITY % SVG.Profile.extra.attrib "" > + +<!ENTITY % SVG.Profile.attrib + "color-profile CDATA #IMPLIED + %SVG.Profile.extra.attrib;" +> + +<!-- color-profile: Color Profile Element .............. --> + +<!ENTITY % SVG.color-profile.element "INCLUDE" > +<![%SVG.color-profile.element;[ +<!ENTITY % SVG.color-profile.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.color-profile.qname; %SVG.color-profile.content; > +<!-- end of SVG.color-profile.element -->]]> + +<!ENTITY % SVG.color-profile.attlist "INCLUDE" > +<![%SVG.color-profile.attlist;[ +<!ATTLIST %SVG.color-profile.qname; + %SVG.Core.attrib; + %SVG.XLink.attrib; + local CDATA #IMPLIED + name CDATA #REQUIRED + rendering-intent ( auto | perceptual | relative-colorimetric | saturation | + absolute-colorimetric ) 'auto' +> +<!-- end of SVG.color-profile.attlist -->]]> + +<!-- end of svg-profile.mod --> +]]> + +<!-- Gradient Module ............................................. --> +<!ENTITY % svg-gradient.module "INCLUDE" > +<![%svg-gradient.module;[ +<!ENTITY % svg-gradient.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Gradient//EN" + "svg-gradient.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Gradient Module ............................................... --> +<!-- file: svg-gradient.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Gradient//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-gradient.mod" + + ....................................................................... --> + +<!-- Gradient + + linearGradient, radialGradient, stop + + This module declares markup to provide support for gradient fill. +--> + +<!-- a <number> or a <percentage> --> +<!ENTITY % NumberOrPercentage.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.linearGradient.qname "linearGradient" > +<!ENTITY % SVG.radialGradient.qname "radialGradient" > +<!ENTITY % SVG.stop.qname "stop" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Gradient.class ................................ --> + +<!ENTITY % SVG.Gradient.extra.class "" > + +<!ENTITY % SVG.Gradient.class + "| %SVG.linearGradient.qname; | %SVG.radialGradient.qname; + %SVG.Gradient.extra.class;" +> + +<!-- SVG.Gradient.attrib ............................... --> + +<!ENTITY % SVG.Gradient.extra.attrib "" > + +<!ENTITY % SVG.Gradient.attrib + "stop-color %SVGColor.datatype; #IMPLIED + stop-opacity %OpacityValue.datatype; #IMPLIED + %SVG.Gradient.extra.attrib;" +> + +<!-- linearGradient: Linear Gradient Element ........... --> + +<!ENTITY % SVG.linearGradient.element "INCLUDE" > +<![%SVG.linearGradient.element;[ +<!ENTITY % SVG.linearGradient.content + "(( %SVG.Description.class; )*, ( %SVG.stop.qname; | %SVG.animate.qname; + | %SVG.set.qname; | %SVG.animateTransform.qname; )*)" +> +<!ELEMENT %SVG.linearGradient.qname; %SVG.linearGradient.content; > +<!-- end of SVG.linearGradient.element -->]]> + +<!ENTITY % SVG.linearGradient.attlist "INCLUDE" > +<![%SVG.linearGradient.attlist;[ +<!ATTLIST %SVG.linearGradient.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.Gradient.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + x1 %Coordinate.datatype; #IMPLIED + y1 %Coordinate.datatype; #IMPLIED + x2 %Coordinate.datatype; #IMPLIED + y2 %Coordinate.datatype; #IMPLIED + gradientUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + gradientTransform %TransformList.datatype; #IMPLIED + spreadMethod ( pad | reflect | repeat ) #IMPLIED +> +<!-- end of SVG.linearGradient.attlist -->]]> + +<!-- radialGradient: Radial Gradient Element ........... --> + +<!ENTITY % SVG.radialGradient.element "INCLUDE" > +<![%SVG.radialGradient.element;[ +<!ENTITY % SVG.radialGradient.content + "(( %SVG.Description.class; )*, ( %SVG.stop.qname; | %SVG.animate.qname; + | %SVG.set.qname; | %SVG.animateTransform.qname; )*)" +> +<!ELEMENT %SVG.radialGradient.qname; %SVG.radialGradient.content; > +<!-- end of SVG.radialGradient.element -->]]> + +<!ENTITY % SVG.radialGradient.attlist "INCLUDE" > +<![%SVG.radialGradient.attlist;[ +<!ATTLIST %SVG.radialGradient.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.Gradient.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + cx %Coordinate.datatype; #IMPLIED + cy %Coordinate.datatype; #IMPLIED + r %Length.datatype; #IMPLIED + fx %Coordinate.datatype; #IMPLIED + fy %Coordinate.datatype; #IMPLIED + gradientUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + gradientTransform %TransformList.datatype; #IMPLIED + spreadMethod ( pad | reflect | repeat ) #IMPLIED +> +<!-- end of SVG.radialGradient.attlist -->]]> + +<!-- stop: Stop Element ................................ --> + +<!ENTITY % SVG.stop.element "INCLUDE" > +<![%SVG.stop.element;[ +<!ENTITY % SVG.stop.content + "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; )*" +> +<!ELEMENT %SVG.stop.qname; %SVG.stop.content; > +<!-- end of SVG.stop.element -->]]> + +<!ENTITY % SVG.stop.attlist "INCLUDE" > +<![%SVG.stop.attlist;[ +<!ATTLIST %SVG.stop.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.Gradient.attrib; + offset %NumberOrPercentage.datatype; #REQUIRED +> +<!-- end of SVG.stop.attlist -->]]> + +<!-- end of svg-gradient.mod --> +]]> + +<!-- Pattern Module .............................................. --> +<!ENTITY % svg-pattern.module "INCLUDE" > +<![%svg-pattern.module;[ +<!ENTITY % svg-pattern.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Pattern//EN" + "svg-pattern.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Pattern Module ................................................ --> +<!-- file: svg-pattern.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Pattern//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-pattern.mod" + + ....................................................................... --> + +<!-- Pattern + + pattern + + This module declares markup to provide support for pattern fill. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.pattern.qname "pattern" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Pattern.class ................................. --> + +<!ENTITY % SVG.Pattern.extra.class "" > + +<!ENTITY % SVG.Pattern.class + "| %SVG.pattern.qname; %SVG.Pattern.extra.class;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- pattern: Pattern Element .......................... --> + +<!ENTITY % SVG.pattern.element "INCLUDE" > +<![%SVG.pattern.element;[ +<!ENTITY % SVG.pattern.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.pattern.qname; %SVG.pattern.content; > +<!-- end of SVG.pattern.element -->]]> + +<!ENTITY % SVG.pattern.attlist "INCLUDE" > +<![%SVG.pattern.attlist;[ +<!ATTLIST %SVG.pattern.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + patternUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + patternContentUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + patternTransform %TransformList.datatype; #IMPLIED + viewBox %ViewBoxSpec.datatype; #IMPLIED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' +> +<!-- end of SVG.pattern.attlist -->]]> + +<!-- end of svg-pattern.mod --> +]]> + +<!-- Clip Module ................................................. --> +<!ENTITY % svg-clip.module "INCLUDE" > +<![%svg-clip.module;[ +<!ENTITY % svg-clip.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Clip//EN" + "svg-clip.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Clip Module ................................................... --> +<!-- file: svg-clip.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Clip//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-clip.mod" + + ....................................................................... --> + +<!-- Clip + + clipPath + + This module declares markup to provide support for clipping. +--> + +<!-- 'clip-path' property/attribute value (e.g., 'none', <uri>) --> +<!ENTITY % ClipPathValue.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.clipPath.qname "clipPath" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Clip.class .................................... --> + +<!ENTITY % SVG.Clip.extra.class "" > + +<!ENTITY % SVG.Clip.class + "| %SVG.clipPath.qname; %SVG.Clip.extra.class;" +> + +<!-- SVG.Clip.attrib ................................... --> + +<!ENTITY % SVG.Clip.extra.attrib "" > + +<!ENTITY % SVG.Clip.attrib + "clip-path %ClipPathValue.datatype; #IMPLIED + clip-rule %ClipFillRule.datatype; #IMPLIED + %SVG.Clip.extra.attrib;" +> + +<!-- clipPath: Clip Path Element ....................... --> + +<!ENTITY % SVG.clipPath.element "INCLUDE" > +<![%SVG.clipPath.element;[ +<!ENTITY % SVG.clipPath.content + "(( %SVG.Description.class; )*, ( %SVG.Animation.class; %SVG.Use.class; + %SVG.Shape.class; %SVG.Text.class; )*)" +> +<!ELEMENT %SVG.clipPath.qname; %SVG.clipPath.content; > +<!-- end of SVG.clipPath.element -->]]> + +<!ENTITY % SVG.clipPath.attlist "INCLUDE" > +<![%SVG.clipPath.attlist;[ +<!ATTLIST %SVG.clipPath.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.Cursor.attrib; + %SVG.External.attrib; + transform %TransformList.datatype; #IMPLIED + clipPathUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED +> +<!-- end of SVG.clipPath.attlist -->]]> + +<!-- end of svg-clip.mod --> +]]> + +<!-- Mask Module ................................................. --> +<!ENTITY % svg-mask.module "INCLUDE" > +<![%svg-mask.module;[ +<!ENTITY % svg-mask.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Mask//EN" + "svg-mask.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Mask Module ................................................... --> +<!-- file: svg-mask.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Mask//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-mask.mod" + + ....................................................................... --> + +<!-- Mask + + mask + + This module declares markup to provide support for masking. +--> + +<!-- 'mask' property/attribute value (e.g., 'none', <uri>) --> +<!ENTITY % MaskValue.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.mask.qname "mask" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Mask.class .................................... --> + +<!ENTITY % SVG.Mask.extra.class "" > + +<!ENTITY % SVG.Mask.class + "| %SVG.mask.qname; %SVG.Mask.extra.class;" +> + +<!-- SVG.Mask.attrib ................................... --> + +<!ENTITY % SVG.Mask.extra.attrib "" > + +<!ENTITY % SVG.Mask.attrib + "mask %MaskValue.datatype; #IMPLIED + %SVG.Mask.extra.attrib;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- mask: Mask Element ................................ --> + +<!ENTITY % SVG.mask.element "INCLUDE" > +<![%SVG.mask.element;[ +<!ENTITY % SVG.mask.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.mask.qname; %SVG.mask.content; > +<!-- end of SVG.mask.element -->]]> + +<!ENTITY % SVG.mask.attlist "INCLUDE" > +<![%SVG.mask.attlist;[ +<!ATTLIST %SVG.mask.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + maskUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + maskContentUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED +> +<!-- end of SVG.mask.attlist -->]]> + +<!-- end of svg-mask.mod --> +]]> + +<!-- Filter Module ............................................... --> +<!ENTITY % svg-filter.module "INCLUDE" > +<![%svg-filter.module;[ +<!ENTITY % svg-filter.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Filter//EN" + "svg-filter.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Filter Module ................................................. --> +<!-- file: svg-filter.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Filter//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-filter.mod" + + ....................................................................... --> + +<!-- Filter + + filter, feBlend, feColorMatrix, feComponentTransfer, feComposite, + feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feFlood, + feGaussianBlur, feImage, feMerge, feMergeNode, feMorphology, feOffset, + feSpecularLighting, feTile, feTurbulence, feDistantLight, fePointLight, + feSpotLight, feFuncR, feFuncG, feFuncB, feFuncA + + This module declares markup to provide support for filter effect. +--> + +<!-- 'filter' property/attribute value (e.g., 'none', <uri>) --> +<!ENTITY % FilterValue.datatype "CDATA" > + +<!-- list of <number>s, but at least one and at most two --> +<!ENTITY % NumberOptionalNumber.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.filter.qname "filter" > +<!ENTITY % SVG.feBlend.qname "feBlend" > +<!ENTITY % SVG.feColorMatrix.qname "feColorMatrix" > +<!ENTITY % SVG.feComponentTransfer.qname "feComponentTransfer" > +<!ENTITY % SVG.feComposite.qname "feComposite" > +<!ENTITY % SVG.feConvolveMatrix.qname "feConvolveMatrix" > +<!ENTITY % SVG.feDiffuseLighting.qname "feDiffuseLighting" > +<!ENTITY % SVG.feDisplacementMap.qname "feDisplacementMap" > +<!ENTITY % SVG.feFlood.qname "feFlood" > +<!ENTITY % SVG.feGaussianBlur.qname "feGaussianBlur" > +<!ENTITY % SVG.feImage.qname "feImage" > +<!ENTITY % SVG.feMerge.qname "feMerge" > +<!ENTITY % SVG.feMergeNode.qname "feMergeNode" > +<!ENTITY % SVG.feMorphology.qname "feMorphology" > +<!ENTITY % SVG.feOffset.qname "feOffset" > +<!ENTITY % SVG.feSpecularLighting.qname "feSpecularLighting" > +<!ENTITY % SVG.feTile.qname "feTile" > +<!ENTITY % SVG.feTurbulence.qname "feTurbulence" > +<!ENTITY % SVG.feDistantLight.qname "feDistantLight" > +<!ENTITY % SVG.fePointLight.qname "fePointLight" > +<!ENTITY % SVG.feSpotLight.qname "feSpotLight" > +<!ENTITY % SVG.feFuncR.qname "feFuncR" > +<!ENTITY % SVG.feFuncG.qname "feFuncG" > +<!ENTITY % SVG.feFuncB.qname "feFuncB" > +<!ENTITY % SVG.feFuncA.qname "feFuncA" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.XLinkEmbed.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Filter.class .................................. --> + +<!ENTITY % SVG.Filter.extra.class "" > + +<!ENTITY % SVG.Filter.class + "| %SVG.filter.qname; %SVG.Filter.extra.class;" +> + +<!-- SVG.FilterPrimitive.class ......................... --> + +<!ENTITY % SVG.FilterPrimitive.extra.class "" > + +<!ENTITY % SVG.FilterPrimitive.class + "| %SVG.feBlend.qname; | %SVG.feColorMatrix.qname; + | %SVG.feComponentTransfer.qname; | %SVG.feComposite.qname; + | %SVG.feConvolveMatrix.qname; | %SVG.feDiffuseLighting.qname; + | %SVG.feDisplacementMap.qname; | %SVG.feFlood.qname; + | %SVG.feGaussianBlur.qname; | %SVG.feImage.qname; | %SVG.feMerge.qname; + | %SVG.feMorphology.qname; | %SVG.feOffset.qname; + | %SVG.feSpecularLighting.qname; | %SVG.feTile.qname; + | %SVG.feTurbulence.qname; %SVG.FilterPrimitive.extra.class;" +> + +<!-- SVG.Filter.attrib ................................. --> + +<!ENTITY % SVG.Filter.extra.attrib "" > + +<!ENTITY % SVG.Filter.attrib + "filter %FilterValue.datatype; #IMPLIED + %SVG.Filter.extra.attrib;" +> + +<!-- SVG.FilterColor.attrib ............................ --> + +<!ENTITY % SVG.FilterColor.extra.attrib "" > + +<!ENTITY % SVG.FilterColor.attrib + "color-interpolation-filters ( auto | sRGB | linearRGB | inherit ) + #IMPLIED + %SVG.FilterColor.extra.attrib;" +> + +<!-- SVG.FilterPrimitive.attrib ........................ --> + +<!ENTITY % SVG.FilterPrimitive.extra.attrib "" > + +<!ENTITY % SVG.FilterPrimitive.attrib + "x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + result CDATA #IMPLIED + %SVG.FilterPrimitive.extra.attrib;" +> + +<!-- SVG.FilterPrimitiveWithIn.attrib .................. --> + +<!ENTITY % SVG.FilterPrimitiveWithIn.extra.attrib "" > + +<!ENTITY % SVG.FilterPrimitiveWithIn.attrib + "%SVG.FilterPrimitive.attrib; + in CDATA #IMPLIED + %SVG.FilterPrimitiveWithIn.extra.attrib;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- filter: Filter Element ............................ --> + +<!ENTITY % SVG.filter.element "INCLUDE" > +<![%SVG.filter.element;[ +<!ENTITY % SVG.filter.content + "(( %SVG.Description.class; )*, ( %SVG.animate.qname; | %SVG.set.qname; + %SVG.FilterPrimitive.class; )*)" +> +<!ELEMENT %SVG.filter.qname; %SVG.filter.content; > +<!-- end of SVG.filter.element -->]]> + +<!ENTITY % SVG.filter.attlist "INCLUDE" > +<![%SVG.filter.attlist;[ +<!ATTLIST %SVG.filter.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + filterRes %NumberOptionalNumber.datatype; #IMPLIED + filterUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED + primitiveUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED +> +<!-- end of SVG.filter.attlist -->]]> + +<!-- feBlend: Filter Effect Blend Element .............. --> + +<!ENTITY % SVG.feBlend.element "INCLUDE" > +<![%SVG.feBlend.element;[ +<!ENTITY % SVG.feBlend.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feBlend.qname; %SVG.feBlend.content; > +<!-- end of SVG.feBlend.element -->]]> + +<!ENTITY % SVG.feBlend.attlist "INCLUDE" > +<![%SVG.feBlend.attlist;[ +<!ATTLIST %SVG.feBlend.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + in2 CDATA #REQUIRED + mode ( normal | multiply | screen | darken | lighten ) 'normal' +> +<!-- end of SVG.feBlend.attlist -->]]> + +<!-- feColorMatrix: Filter Effect Color Matrix Element . --> + +<!ENTITY % SVG.feColorMatrix.element "INCLUDE" > +<![%SVG.feColorMatrix.element;[ +<!ENTITY % SVG.feColorMatrix.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feColorMatrix.qname; %SVG.feColorMatrix.content; > +<!-- end of SVG.feColorMatrix.element -->]]> + +<!ENTITY % SVG.feColorMatrix.attlist "INCLUDE" > +<![%SVG.feColorMatrix.attlist;[ +<!ATTLIST %SVG.feColorMatrix.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + type ( matrix | saturate | hueRotate | luminanceToAlpha ) 'matrix' + values CDATA #IMPLIED +> +<!-- end of SVG.feColorMatrix.attlist -->]]> + +<!-- feComponentTransfer: Filter Effect Component Transfer Element --> + +<!ENTITY % SVG.feComponentTransfer.element "INCLUDE" > +<![%SVG.feComponentTransfer.element;[ +<!ENTITY % SVG.feComponentTransfer.content + "( %SVG.feFuncR.qname;?, %SVG.feFuncG.qname;?, %SVG.feFuncB.qname;?, + %SVG.feFuncA.qname;? )" +> +<!ELEMENT %SVG.feComponentTransfer.qname; %SVG.feComponentTransfer.content; > +<!-- end of SVG.feComponentTransfer.element -->]]> + +<!ENTITY % SVG.feComponentTransfer.attlist "INCLUDE" > +<![%SVG.feComponentTransfer.attlist;[ +<!ATTLIST %SVG.feComponentTransfer.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; +> +<!-- end of SVG.feComponentTransfer.attlist -->]]> + +<!-- feComposite: Filter Effect Composite Element ...... --> + +<!ENTITY % SVG.feComposite.element "INCLUDE" > +<![%SVG.feComposite.element;[ +<!ENTITY % SVG.feComposite.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feComposite.qname; %SVG.feComposite.content; > +<!-- end of SVG.feComposite.element -->]]> + +<!ENTITY % SVG.feComposite.attlist "INCLUDE" > +<![%SVG.feComposite.attlist;[ +<!ATTLIST %SVG.feComposite.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + in2 CDATA #REQUIRED + operator ( over | in | out | atop | xor | arithmetic ) 'over' + k1 %Number.datatype; #IMPLIED + k2 %Number.datatype; #IMPLIED + k3 %Number.datatype; #IMPLIED + k4 %Number.datatype; #IMPLIED +> +<!-- end of SVG.feComposite.attlist -->]]> + +<!-- feConvolveMatrix: Filter Effect Convolve Matrix Element --> + +<!ENTITY % SVG.feConvolveMatrix.element "INCLUDE" > +<![%SVG.feConvolveMatrix.element;[ +<!ENTITY % SVG.feConvolveMatrix.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feConvolveMatrix.qname; %SVG.feConvolveMatrix.content; > +<!-- end of SVG.feConvolveMatrix.element -->]]> + +<!ENTITY % SVG.feConvolveMatrix.attlist "INCLUDE" > +<![%SVG.feConvolveMatrix.attlist;[ +<!ATTLIST %SVG.feConvolveMatrix.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + order %NumberOptionalNumber.datatype; #REQUIRED + kernelMatrix CDATA #REQUIRED + divisor %Number.datatype; #IMPLIED + bias %Number.datatype; #IMPLIED + targetX %Integer.datatype; #IMPLIED + targetY %Integer.datatype; #IMPLIED + edgeMode ( duplicate | wrap | none ) 'duplicate' + kernelUnitLength %NumberOptionalNumber.datatype; #IMPLIED + preserveAlpha %Boolean.datatype; #IMPLIED +> +<!-- end of SVG.feConvolveMatrix.attlist -->]]> + +<!-- feDiffuseLighting: Filter Effect Diffuse Lighting Element --> + +<!ENTITY % SVG.feDiffuseLighting.element "INCLUDE" > +<![%SVG.feDiffuseLighting.element;[ +<!ENTITY % SVG.feDiffuseLighting.content + "(( %SVG.feDistantLight.qname; | %SVG.fePointLight.qname; + | %SVG.feSpotLight.qname; ), ( %SVG.animate.qname; | %SVG.set.qname; + | %SVG.animateColor.qname; )*)" +> +<!ELEMENT %SVG.feDiffuseLighting.qname; %SVG.feDiffuseLighting.content; > +<!-- end of SVG.feDiffuseLighting.element -->]]> + +<!ENTITY % SVG.feDiffuseLighting.attlist "INCLUDE" > +<![%SVG.feDiffuseLighting.attlist;[ +<!ATTLIST %SVG.feDiffuseLighting.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + lighting-color %SVGColor.datatype; #IMPLIED + surfaceScale %Number.datatype; #IMPLIED + diffuseConstant %Number.datatype; #IMPLIED + kernelUnitLength %NumberOptionalNumber.datatype; #IMPLIED +> +<!-- end of SVG.feDiffuseLighting.attlist -->]]> + +<!-- feDisplacementMap: Filter Effect Displacement Map Element --> + +<!ENTITY % SVG.feDisplacementMap.element "INCLUDE" > +<![%SVG.feDisplacementMap.element;[ +<!ENTITY % SVG.feDisplacementMap.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feDisplacementMap.qname; %SVG.feDisplacementMap.content; > +<!-- end of SVG.feDisplacementMap.element -->]]> + +<!ENTITY % SVG.feDisplacementMap.attlist "INCLUDE" > +<![%SVG.feDisplacementMap.attlist;[ +<!ATTLIST %SVG.feDisplacementMap.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + in2 CDATA #REQUIRED + scale %Number.datatype; #IMPLIED + xChannelSelector ( R | G | B | A ) 'A' + yChannelSelector ( R | G | B | A ) 'A' +> +<!-- end of SVG.feDisplacementMap.attlist -->]]> + +<!-- feFlood: Filter Effect Flood Element .............. --> + +<!ENTITY % SVG.feFlood.element "INCLUDE" > +<![%SVG.feFlood.element;[ +<!ENTITY % SVG.feFlood.content + "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; )*" +> +<!ELEMENT %SVG.feFlood.qname; %SVG.feFlood.content; > +<!-- end of SVG.feFlood.element -->]]> + +<!ENTITY % SVG.feFlood.attlist "INCLUDE" > +<![%SVG.feFlood.attlist;[ +<!ATTLIST %SVG.feFlood.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED +> +<!-- end of SVG.feFlood.attlist -->]]> + +<!-- feGaussianBlur: Filter Effect Gaussian Blur Element --> + +<!ENTITY % SVG.feGaussianBlur.element "INCLUDE" > +<![%SVG.feGaussianBlur.element;[ +<!ENTITY % SVG.feGaussianBlur.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feGaussianBlur.qname; %SVG.feGaussianBlur.content; > +<!-- end of SVG.feGaussianBlur.element -->]]> + +<!ENTITY % SVG.feGaussianBlur.attlist "INCLUDE" > +<![%SVG.feGaussianBlur.attlist;[ +<!ATTLIST %SVG.feGaussianBlur.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + stdDeviation %NumberOptionalNumber.datatype; #IMPLIED +> +<!-- end of SVG.feGaussianBlur.attlist -->]]> + +<!-- feImage: Filter Effect Image Element .............. --> + +<!ENTITY % SVG.feImage.element "INCLUDE" > +<![%SVG.feImage.element;[ +<!ENTITY % SVG.feImage.content + "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateTransform.qname; )*" +> +<!ELEMENT %SVG.feImage.qname; %SVG.feImage.content; > +<!-- end of SVG.feImage.element -->]]> + +<!ENTITY % SVG.feImage.attlist "INCLUDE" > +<![%SVG.feImage.attlist;[ +<!ATTLIST %SVG.feImage.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.FilterPrimitive.attrib; + %SVG.XLinkEmbed.attrib; + %SVG.External.attrib; + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' +> +<!-- end of SVG.feImage.attlist -->]]> + +<!-- feMerge: Filter Effect Merge Element .............. --> + +<!ENTITY % SVG.feMerge.element "INCLUDE" > +<![%SVG.feMerge.element;[ +<!ENTITY % SVG.feMerge.content + "( %SVG.feMergeNode.qname; )*" +> +<!ELEMENT %SVG.feMerge.qname; %SVG.feMerge.content; > +<!-- end of SVG.feMerge.element -->]]> + +<!ENTITY % SVG.feMerge.attlist "INCLUDE" > +<![%SVG.feMerge.attlist;[ +<!ATTLIST %SVG.feMerge.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitive.attrib; +> +<!-- end of SVG.feMerge.attlist -->]]> + +<!-- feMergeNode: Filter Effect Merge Node Element ..... --> + +<!ENTITY % SVG.feMergeNode.element "INCLUDE" > +<![%SVG.feMergeNode.element;[ +<!ENTITY % SVG.feMergeNode.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feMergeNode.qname; %SVG.feMergeNode.content; > +<!-- end of SVG.feMergeNode.element -->]]> + +<!ENTITY % SVG.feMergeNode.attlist "INCLUDE" > +<![%SVG.feMergeNode.attlist;[ +<!ATTLIST %SVG.feMergeNode.qname; + %SVG.Core.attrib; + in CDATA #IMPLIED +> +<!-- end of SVG.feMergeNode.attlist -->]]> + +<!-- feMorphology: Filter Effect Morphology Element .... --> + +<!ENTITY % SVG.feMorphology.element "INCLUDE" > +<![%SVG.feMorphology.element;[ +<!ENTITY % SVG.feMorphology.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feMorphology.qname; %SVG.feMorphology.content; > +<!-- end of SVG.feMorphology.element -->]]> + +<!ENTITY % SVG.feMorphology.attlist "INCLUDE" > +<![%SVG.feMorphology.attlist;[ +<!ATTLIST %SVG.feMorphology.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + operator ( erode | dilate ) 'erode' + radius %NumberOptionalNumber.datatype; #IMPLIED +> +<!-- end of SVG.feMorphology.attlist -->]]> + +<!-- feOffset: Filter Effect Offset Element ............ --> + +<!ENTITY % SVG.feOffset.element "INCLUDE" > +<![%SVG.feOffset.element;[ +<!ENTITY % SVG.feOffset.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feOffset.qname; %SVG.feOffset.content; > +<!-- end of SVG.feOffset.element -->]]> + +<!ENTITY % SVG.feOffset.attlist "INCLUDE" > +<![%SVG.feOffset.attlist;[ +<!ATTLIST %SVG.feOffset.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + dx %Number.datatype; #IMPLIED + dy %Number.datatype; #IMPLIED +> +<!-- end of SVG.feOffset.attlist -->]]> + +<!-- feSpecularLighting: Filter Effect Specular Lighting Element --> + +<!ENTITY % SVG.feSpecularLighting.element "INCLUDE" > +<![%SVG.feSpecularLighting.element;[ +<!ENTITY % SVG.feSpecularLighting.content + "(( %SVG.feDistantLight.qname; | %SVG.fePointLight.qname; + | %SVG.feSpotLight.qname; ), ( %SVG.animate.qname; | %SVG.set.qname; + | %SVG.animateColor.qname; )*)" +> +<!ELEMENT %SVG.feSpecularLighting.qname; %SVG.feSpecularLighting.content; > +<!-- end of SVG.feSpecularLighting.element -->]]> + +<!ENTITY % SVG.feSpecularLighting.attlist "INCLUDE" > +<![%SVG.feSpecularLighting.attlist;[ +<!ATTLIST %SVG.feSpecularLighting.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Color.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; + lighting-color %SVGColor.datatype; #IMPLIED + surfaceScale %Number.datatype; #IMPLIED + specularConstant %Number.datatype; #IMPLIED + specularExponent %Number.datatype; #IMPLIED + kernelUnitLength %NumberOptionalNumber.datatype; #IMPLIED +> +<!-- end of SVG.feSpecularLighting.attlist -->]]> + +<!-- feTile: Filter Effect Tile Element ................ --> + +<!ENTITY % SVG.feTile.element "INCLUDE" > +<![%SVG.feTile.element;[ +<!ENTITY % SVG.feTile.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feTile.qname; %SVG.feTile.content; > +<!-- end of SVG.feTile.element -->]]> + +<!ENTITY % SVG.feTile.attlist "INCLUDE" > +<![%SVG.feTile.attlist;[ +<!ATTLIST %SVG.feTile.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitiveWithIn.attrib; +> +<!-- end of SVG.feTile.attlist -->]]> + +<!-- feTurbulence: Filter Effect Turbulence Element .... --> + +<!ENTITY % SVG.feTurbulence.element "INCLUDE" > +<![%SVG.feTurbulence.element;[ +<!ENTITY % SVG.feTurbulence.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feTurbulence.qname; %SVG.feTurbulence.content; > +<!-- end of SVG.feTurbulence.element -->]]> + +<!ENTITY % SVG.feTurbulence.attlist "INCLUDE" > +<![%SVG.feTurbulence.attlist;[ +<!ATTLIST %SVG.feTurbulence.qname; + %SVG.Core.attrib; + %SVG.FilterColor.attrib; + %SVG.FilterPrimitive.attrib; + baseFrequency %NumberOptionalNumber.datatype; #IMPLIED + numOctaves %Integer.datatype; #IMPLIED + seed %Number.datatype; #IMPLIED + stitchTiles ( stitch | noStitch ) 'noStitch' + type ( fractalNoise | turbulence ) 'turbulence' +> +<!-- end of SVG.feTurbulence.attlist -->]]> + +<!-- feDistantLight: Filter Effect Distant Light Element --> + +<!ENTITY % SVG.feDistantLight.element "INCLUDE" > +<![%SVG.feDistantLight.element;[ +<!ENTITY % SVG.feDistantLight.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feDistantLight.qname; %SVG.feDistantLight.content; > +<!-- end of SVG.feDistantLight.element -->]]> + +<!ENTITY % SVG.feDistantLight.attlist "INCLUDE" > +<![%SVG.feDistantLight.attlist;[ +<!ATTLIST %SVG.feDistantLight.qname; + %SVG.Core.attrib; + azimuth %Number.datatype; #IMPLIED + elevation %Number.datatype; #IMPLIED +> +<!-- end of SVG.feDistantLight.attlist -->]]> + +<!-- fePointLight: Filter Effect Point Light Element ... --> + +<!ENTITY % SVG.fePointLight.element "INCLUDE" > +<![%SVG.fePointLight.element;[ +<!ENTITY % SVG.fePointLight.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.fePointLight.qname; %SVG.fePointLight.content; > +<!-- end of SVG.fePointLight.element -->]]> + +<!ENTITY % SVG.fePointLight.attlist "INCLUDE" > +<![%SVG.fePointLight.attlist;[ +<!ATTLIST %SVG.fePointLight.qname; + %SVG.Core.attrib; + x %Number.datatype; #IMPLIED + y %Number.datatype; #IMPLIED + z %Number.datatype; #IMPLIED +> +<!-- end of SVG.fePointLight.attlist -->]]> + +<!-- feSpotLight: Filter Effect Spot Light Element ..... --> + +<!ENTITY % SVG.feSpotLight.element "INCLUDE" > +<![%SVG.feSpotLight.element;[ +<!ENTITY % SVG.feSpotLight.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feSpotLight.qname; %SVG.feSpotLight.content; > +<!-- end of SVG.feSpotLight.element -->]]> + +<!ENTITY % SVG.feSpotLight.attlist "INCLUDE" > +<![%SVG.feSpotLight.attlist;[ +<!ATTLIST %SVG.feSpotLight.qname; + %SVG.Core.attrib; + x %Number.datatype; #IMPLIED + y %Number.datatype; #IMPLIED + z %Number.datatype; #IMPLIED + pointsAtX %Number.datatype; #IMPLIED + pointsAtY %Number.datatype; #IMPLIED + pointsAtZ %Number.datatype; #IMPLIED + specularExponent %Number.datatype; #IMPLIED + limitingConeAngle %Number.datatype; #IMPLIED +> +<!-- end of SVG.feSpotLight.attlist -->]]> + +<!-- feFuncR: Filter Effect Function Red Element ....... --> + +<!ENTITY % SVG.feFuncR.element "INCLUDE" > +<![%SVG.feFuncR.element;[ +<!ENTITY % SVG.feFuncR.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feFuncR.qname; %SVG.feFuncR.content; > +<!-- end of SVG.feFuncR.element -->]]> + +<!ENTITY % SVG.feFuncR.attlist "INCLUDE" > +<![%SVG.feFuncR.attlist;[ +<!ATTLIST %SVG.feFuncR.qname; + %SVG.Core.attrib; + type ( identity | table | discrete | linear | gamma ) #REQUIRED + tableValues CDATA #IMPLIED + slope %Number.datatype; #IMPLIED + intercept %Number.datatype; #IMPLIED + amplitude %Number.datatype; #IMPLIED + exponent %Number.datatype; #IMPLIED + offset %Number.datatype; #IMPLIED +> +<!-- end of SVG.feFuncR.attlist -->]]> + +<!-- feFuncG: Filter Effect Function Green Element ..... --> + +<!ENTITY % SVG.feFuncG.element "INCLUDE" > +<![%SVG.feFuncG.element;[ +<!ENTITY % SVG.feFuncG.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feFuncG.qname; %SVG.feFuncG.content; > +<!-- end of SVG.feFuncG.element -->]]> + +<!ENTITY % SVG.feFuncG.attlist "INCLUDE" > +<![%SVG.feFuncG.attlist;[ +<!ATTLIST %SVG.feFuncG.qname; + %SVG.Core.attrib; + type ( identity | table | discrete | linear | gamma ) #REQUIRED + tableValues CDATA #IMPLIED + slope %Number.datatype; #IMPLIED + intercept %Number.datatype; #IMPLIED + amplitude %Number.datatype; #IMPLIED + exponent %Number.datatype; #IMPLIED + offset %Number.datatype; #IMPLIED +> +<!-- end of SVG.feFuncG.attlist -->]]> + +<!-- feFuncB: Filter Effect Function Blue Element ...... --> + +<!ENTITY % SVG.feFuncB.element "INCLUDE" > +<![%SVG.feFuncB.element;[ +<!ENTITY % SVG.feFuncB.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feFuncB.qname; %SVG.feFuncB.content; > +<!-- end of SVG.feFuncB.element -->]]> + +<!ENTITY % SVG.feFuncB.attlist "INCLUDE" > +<![%SVG.feFuncB.attlist;[ +<!ATTLIST %SVG.feFuncB.qname; + %SVG.Core.attrib; + type ( identity | table | discrete | linear | gamma ) #REQUIRED + tableValues CDATA #IMPLIED + slope %Number.datatype; #IMPLIED + intercept %Number.datatype; #IMPLIED + amplitude %Number.datatype; #IMPLIED + exponent %Number.datatype; #IMPLIED + offset %Number.datatype; #IMPLIED +> +<!-- end of SVG.feFuncB.attlist -->]]> + +<!-- feFuncA: Filter Effect Function Alpha Element ..... --> + +<!ENTITY % SVG.feFuncA.element "INCLUDE" > +<![%SVG.feFuncA.element;[ +<!ENTITY % SVG.feFuncA.content + "( %SVG.animate.qname; | %SVG.set.qname; )*" +> +<!ELEMENT %SVG.feFuncA.qname; %SVG.feFuncA.content; > +<!-- end of SVG.feFuncA.element -->]]> + +<!ENTITY % SVG.feFuncA.attlist "INCLUDE" > +<![%SVG.feFuncA.attlist;[ +<!ATTLIST %SVG.feFuncA.qname; + %SVG.Core.attrib; + type ( identity | table | discrete | linear | gamma ) #REQUIRED + tableValues CDATA #IMPLIED + slope %Number.datatype; #IMPLIED + intercept %Number.datatype; #IMPLIED + amplitude %Number.datatype; #IMPLIED + exponent %Number.datatype; #IMPLIED + offset %Number.datatype; #IMPLIED +> +<!-- end of SVG.feFuncA.attlist -->]]> + +<!-- end of svg-filter.mod --> +]]> + +<!-- Cursor Module ............................................... --> +<!ENTITY % svg-cursor.module "INCLUDE" > +<![%svg-cursor.module;[ +<!ENTITY % svg-cursor.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Cursor//EN" + "svg-cursor.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Cursor Module ................................................. --> +<!-- file: svg-cursor.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Cursor//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-cursor.mod" + + ....................................................................... --> + +<!-- Cursor + + cursor + + This module declares markup to provide support for cursor. +--> + +<!-- 'cursor' property/attribute value (e.g., 'crosshair', <uri>) --> +<!ENTITY % CursorValue.datatype "CDATA" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.cursor.qname "cursor" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.XLinkRequired.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Cursor.class .................................. --> + +<!ENTITY % SVG.Cursor.extra.class "" > + +<!ENTITY % SVG.Cursor.class + "| %SVG.cursor.qname; %SVG.Cursor.extra.class;" +> + +<!-- SVG.Cursor.attrib ................................. --> + +<!ENTITY % SVG.Cursor.extra.attrib "" > + +<!ENTITY % SVG.Cursor.attrib + "cursor %CursorValue.datatype; #IMPLIED + %SVG.Cursor.extra.attrib;" +> + +<!-- cursor: Cursor Element ............................ --> + +<!ENTITY % SVG.cursor.element "INCLUDE" > +<![%SVG.cursor.element;[ +<!ENTITY % SVG.cursor.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.cursor.qname; %SVG.cursor.content; > +<!-- end of SVG.cursor.element -->]]> + +<!ENTITY % SVG.cursor.attlist "INCLUDE" > +<![%SVG.cursor.attlist;[ +<!ATTLIST %SVG.cursor.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.XLinkRequired.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED +> +<!-- end of SVG.cursor.attlist -->]]> + +<!-- end of svg-cursor.mod --> +]]> + +<!-- Hyperlinking Module ......................................... --> +<!ENTITY % svg-hyperlink.module "INCLUDE" > +<![%svg-hyperlink.module;[ +<!ENTITY % svg-hyperlink.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Hyperlinking//EN" + "svg-hyperlink.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Hyperlinking Module ........................................... --> +<!-- file: svg-hyperlink.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Hyperlinking//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-hyperlink.mod" + + ....................................................................... --> + +<!-- Hyperlinking + + a + + This module declares markup to provide support for hyper linking. +--> + +<!-- link to this target --> +<!ENTITY % LinkTarget.datatype "NMTOKEN" > + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.a.qname "a" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLinkReplace.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Hyperlink.class ............................... --> + +<!ENTITY % SVG.Hyperlink.extra.class "" > + +<!ENTITY % SVG.Hyperlink.class + "| %SVG.a.qname; %SVG.Hyperlink.extra.class;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- a: Anchor Element ................................. --> + +<!ENTITY % SVG.a.element "INCLUDE" > +<![%SVG.a.element;[ +<!ENTITY % SVG.a.content + "( #PCDATA | %SVG.Description.class; | %SVG.Animation.class; + %SVG.Structure.class; %SVG.Conditional.class; %SVG.Image.class; + %SVG.Style.class; %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; + %SVG.Profile.class; %SVG.Gradient.class; %SVG.Pattern.class; + %SVG.Clip.class; %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.a.qname; %SVG.a.content; > +<!-- end of SVG.a.element -->]]> + +<!ENTITY % SVG.a.attlist "INCLUDE" > +<![%SVG.a.attlist;[ +<!ATTLIST %SVG.a.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.XLinkReplace.attrib; + %SVG.External.attrib; + transform %TransformList.datatype; #IMPLIED + target %LinkTarget.datatype; #IMPLIED +> +<!-- end of SVG.a.attlist -->]]> + +<!-- end of svg-hyperlink.mod --> +]]> + +<!-- View Module ................................................. --> +<!ENTITY % svg-view.module "INCLUDE" > +<![%svg-view.module;[ +<!ENTITY % svg-view.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 View//EN" + "svg-view.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 View Module ................................................... --> +<!-- file: svg-view.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 View//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-view.mod" + + ....................................................................... --> + +<!-- View + + view + + This module declares markup to provide support for view. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.view.qname "view" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.View.class .................................... --> + +<!ENTITY % SVG.View.extra.class "" > + +<!ENTITY % SVG.View.class + "| %SVG.view.qname; %SVG.View.extra.class;" +> + +<!-- view: View Element ................................ --> + +<!ENTITY % SVG.view.element "INCLUDE" > +<![%SVG.view.element;[ +<!ENTITY % SVG.view.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.view.qname; %SVG.view.content; > +<!-- end of SVG.view.element -->]]> + +<!ENTITY % SVG.view.attlist "INCLUDE" > +<![%SVG.view.attlist;[ +<!ATTLIST %SVG.view.qname; + %SVG.Core.attrib; + %SVG.External.attrib; + viewBox %ViewBoxSpec.datatype; #IMPLIED + preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet' + zoomAndPan ( disable | magnify ) 'magnify' + viewTarget CDATA #IMPLIED +> +<!-- end of SVG.view.attlist -->]]> + +<!-- end of svg-view.mod --> +]]> + +<!-- Scripting Module ............................................ --> +<!ENTITY % svg-script.module "INCLUDE" > +<![%svg-script.module;[ +<!ENTITY % svg-script.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Scripting//EN" + "svg-script.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Scripting Module .............................................. --> +<!-- file: svg-script.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Scripting//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-script.mod" + + ....................................................................... --> + +<!-- Scripting + + script + + This module declares markup to provide support for scripting. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.script.qname "script" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Script.class .................................. --> + +<!ENTITY % SVG.Script.extra.class "" > + +<!ENTITY % SVG.Script.class + "| %SVG.script.qname; %SVG.Script.extra.class;" +> + +<!-- script: Script Element ............................ --> + +<!ENTITY % SVG.script.element "INCLUDE" > +<![%SVG.script.element;[ +<!ENTITY % SVG.script.content "( #PCDATA )" > +<!ELEMENT %SVG.script.qname; %SVG.script.content; > +<!-- end of SVG.script.element -->]]> + +<!ENTITY % SVG.script.attlist "INCLUDE" > +<![%SVG.script.attlist;[ +<!ATTLIST %SVG.script.qname; + %SVG.Core.attrib; + %SVG.XLink.attrib; + %SVG.External.attrib; + type %ContentType.datatype; #REQUIRED +> +<!-- end of SVG.script.attlist -->]]> + +<!-- end of svg-script.mod --> +]]> + +<!-- Animation Module ............................................ --> +<!ENTITY % svg-animation.module "INCLUDE" > +<![%svg-animation.module;[ +<!ENTITY % svg-animation.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Animation//EN" + "svg-animation.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Animation Module .............................................. --> +<!-- file: svg-animation.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Animation//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-animation.mod" + + ....................................................................... --> + +<!-- Animation + + animate, set, animateMotion, animateColor, animateTransform, mpath + + This module declares markup to provide support for animation. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.animate.qname "animate" > +<!ENTITY % SVG.set.qname "set" > +<!ENTITY % SVG.animateMotion.qname "animateMotion" > +<!ENTITY % SVG.animateColor.qname "animateColor" > +<!ENTITY % SVG.animateTransform.qname "animateTransform" > +<!ENTITY % SVG.mpath.qname "mpath" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.AnimationEvents.attrib "" > +<!ENTITY % SVG.XLink.attrib "" > +<!ENTITY % SVG.XLinkRequired.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Animation.class ............................... --> + +<!ENTITY % SVG.Animation.extra.class "" > + +<!ENTITY % SVG.Animation.class + "%SVG.animate.qname; | %SVG.set.qname; | %SVG.animateMotion.qname; | + %SVG.animateColor.qname; | %SVG.animateTransform.qname; + %SVG.Animation.extra.class;" +> + +<!-- SVG.Animation.attrib .............................. --> + +<!ENTITY % SVG.Animation.extra.attrib "" > + +<!ENTITY % SVG.Animation.attrib + "%SVG.XLink.attrib; + %SVG.Animation.extra.attrib;" +> + +<!-- SVG.AnimationAttribute.attrib ..................... --> + +<!ENTITY % SVG.AnimationAttribute.extra.attrib "" > + +<!ENTITY % SVG.AnimationAttribute.attrib + "attributeName CDATA #REQUIRED + attributeType CDATA #IMPLIED + %SVG.AnimationAttribute.extra.attrib;" +> + +<!-- SVG.AnimationTiming.attrib ........................ --> + +<!ENTITY % SVG.AnimationTiming.extra.attrib "" > + +<!ENTITY % SVG.AnimationTiming.attrib + "begin CDATA #IMPLIED + dur CDATA #IMPLIED + end CDATA #IMPLIED + min CDATA #IMPLIED + max CDATA #IMPLIED + restart ( always | never | whenNotActive ) 'always' + repeatCount CDATA #IMPLIED + repeatDur CDATA #IMPLIED + fill ( remove | freeze ) 'remove' + %SVG.AnimationTiming.extra.attrib;" +> + +<!-- SVG.AnimationValue.attrib ......................... --> + +<!ENTITY % SVG.AnimationValue.extra.attrib "" > + +<!ENTITY % SVG.AnimationValue.attrib + "calcMode ( discrete | linear | paced | spline ) 'linear' + values CDATA #IMPLIED + keyTimes CDATA #IMPLIED + keySplines CDATA #IMPLIED + from CDATA #IMPLIED + to CDATA #IMPLIED + by CDATA #IMPLIED + %SVG.AnimationValue.extra.attrib;" +> + +<!-- SVG.AnimationAddtion.attrib ....................... --> + +<!ENTITY % SVG.AnimationAddtion.extra.attrib "" > + +<!ENTITY % SVG.AnimationAddtion.attrib + "additive ( replace | sum ) 'replace' + accumulate ( none | sum ) 'none' + %SVG.AnimationAddtion.extra.attrib;" +> + +<!-- animate: Animate Element .......................... --> + +<!ENTITY % SVG.animate.element "INCLUDE" > +<![%SVG.animate.element;[ +<!ENTITY % SVG.animate.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.animate.qname; %SVG.animate.content; > +<!-- end of SVG.animate.element -->]]> + +<!ENTITY % SVG.animate.attlist "INCLUDE" > +<![%SVG.animate.attlist;[ +<!ATTLIST %SVG.animate.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.AnimationEvents.attrib; + %SVG.External.attrib; + %SVG.Animation.attrib; + %SVG.AnimationAttribute.attrib; + %SVG.AnimationTiming.attrib; + %SVG.AnimationValue.attrib; + %SVG.AnimationAddtion.attrib; +> +<!-- end of SVG.animate.attlist -->]]> + +<!-- set: Set Element .................................. --> + +<!ENTITY % SVG.set.element "INCLUDE" > +<![%SVG.set.element;[ +<!ENTITY % SVG.set.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.set.qname; %SVG.set.content; > +<!-- end of SVG.set.element -->]]> + +<!ENTITY % SVG.set.attlist "INCLUDE" > +<![%SVG.set.attlist;[ +<!ATTLIST %SVG.set.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.AnimationEvents.attrib; + %SVG.External.attrib; + %SVG.Animation.attrib; + %SVG.AnimationAttribute.attrib; + %SVG.AnimationTiming.attrib; + to CDATA #IMPLIED +> +<!-- end of SVG.set.attlist -->]]> + +<!-- animateMotion: Animate Motion Element ............. --> + +<!ENTITY % SVG.animateMotion.element "INCLUDE" > +<![%SVG.animateMotion.element;[ +<!ENTITY % SVG.animateMotion.content + "(( %SVG.Description.class; )*, %SVG.mpath.qname;? )" +> +<!ELEMENT %SVG.animateMotion.qname; %SVG.animateMotion.content; > +<!-- end of SVG.animateMotion.element -->]]> + +<!ENTITY % SVG.animateMotion.attlist "INCLUDE" > +<![%SVG.animateMotion.attlist;[ +<!ATTLIST %SVG.animateMotion.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.AnimationEvents.attrib; + %SVG.External.attrib; + %SVG.Animation.attrib; + %SVG.AnimationTiming.attrib; + %SVG.AnimationAddtion.attrib; + calcMode ( discrete | linear | paced | spline ) 'paced' + values CDATA #IMPLIED + keyTimes CDATA #IMPLIED + keySplines CDATA #IMPLIED + from CDATA #IMPLIED + to CDATA #IMPLIED + by CDATA #IMPLIED + path CDATA #IMPLIED + keyPoints CDATA #IMPLIED + rotate CDATA #IMPLIED + origin CDATA #IMPLIED +> +<!-- end of SVG.animateMotion.attlist -->]]> + +<!-- animateColor: Animate Color Element ............... --> + +<!ENTITY % SVG.animateColor.element "INCLUDE" > +<![%SVG.animateColor.element;[ +<!ENTITY % SVG.animateColor.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.animateColor.qname; %SVG.animateColor.content; > +<!-- end of SVG.animateColor.element -->]]> + +<!ENTITY % SVG.animateColor.attlist "INCLUDE" > +<![%SVG.animateColor.attlist;[ +<!ATTLIST %SVG.animateColor.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.AnimationEvents.attrib; + %SVG.External.attrib; + %SVG.Animation.attrib; + %SVG.AnimationAttribute.attrib; + %SVG.AnimationTiming.attrib; + %SVG.AnimationValue.attrib; + %SVG.AnimationAddtion.attrib; +> +<!-- end of SVG.animateColor.attlist -->]]> + +<!-- animateTransform: Animate Transform Element ....... --> + +<!ENTITY % SVG.animateTransform.element "INCLUDE" > +<![%SVG.animateTransform.element;[ +<!ENTITY % SVG.animateTransform.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.animateTransform.qname; %SVG.animateTransform.content; > +<!-- end of SVG.animateTransform.element -->]]> + +<!ENTITY % SVG.animateTransform.attlist "INCLUDE" > +<![%SVG.animateTransform.attlist;[ +<!ATTLIST %SVG.animateTransform.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.AnimationEvents.attrib; + %SVG.External.attrib; + %SVG.Animation.attrib; + %SVG.AnimationAttribute.attrib; + %SVG.AnimationTiming.attrib; + %SVG.AnimationValue.attrib; + %SVG.AnimationAddtion.attrib; + type ( translate | scale | rotate | skewX | skewY ) 'translate' +> +<!-- end of SVG.animateTransform.attlist -->]]> + +<!-- mpath: Motion Path Element ........................ --> + +<!ENTITY % SVG.mpath.element "INCLUDE" > +<![%SVG.mpath.element;[ +<!ENTITY % SVG.mpath.content + "( %SVG.Description.class; )*" +> +<!ELEMENT %SVG.mpath.qname; %SVG.mpath.content; > +<!-- end of SVG.mpath.element -->]]> + +<!ENTITY % SVG.mpath.attlist "INCLUDE" > +<![%SVG.mpath.attlist;[ +<!ATTLIST %SVG.mpath.qname; + %SVG.Core.attrib; + %SVG.XLinkRequired.attrib; + %SVG.External.attrib; +> +<!-- end of SVG.mpath.attlist -->]]> + +<!-- end of svg-animation.mod --> +]]> + +<!-- Font Module ................................................. --> +<!ENTITY % svg-font.module "INCLUDE" > +<![%svg-font.module;[ +<!ENTITY % svg-font.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Font//EN" + "svg-font.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Font Module ................................................... --> +<!-- file: svg-font.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Font//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-font.mod" + + ....................................................................... --> + +<!-- Font + + font, font-face, glyph, missing-glyph, hkern, vkern, font-face-src, + font-face-uri, font-face-format, font-face-name, definition-src + + This module declares markup to provide support for template. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.font.qname "font" > +<!ENTITY % SVG.font-face.qname "font-face" > +<!ENTITY % SVG.glyph.qname "glyph" > +<!ENTITY % SVG.missing-glyph.qname "missing-glyph" > +<!ENTITY % SVG.hkern.qname "hkern" > +<!ENTITY % SVG.vkern.qname "vkern" > +<!ENTITY % SVG.font-face-src.qname "font-face-src" > +<!ENTITY % SVG.font-face-uri.qname "font-face-uri" > +<!ENTITY % SVG.font-face-format.qname "font-face-format" > +<!ENTITY % SVG.font-face-name.qname "font-face-name" > +<!ENTITY % SVG.definition-src.qname "definition-src" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Container.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Profile.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.XLinkRequired.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Font.class .................................... --> + +<!ENTITY % SVG.Font.extra.class "" > + +<!ENTITY % SVG.Font.class + "| %SVG.font.qname; | %SVG.font-face.qname; %SVG.Font.extra.class;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- font: Font Element ................................ --> + +<!ENTITY % SVG.font.element "INCLUDE" > +<![%SVG.font.element;[ +<!ENTITY % SVG.font.content + "(( %SVG.Description.class; )*, %SVG.font-face.qname;, + %SVG.missing-glyph.qname;, ( %SVG.glyph.qname; | %SVG.hkern.qname; + | %SVG.vkern.qname; )*)" +> +<!ELEMENT %SVG.font.qname; %SVG.font.content; > +<!-- end of SVG.font.element -->]]> + +<!ENTITY % SVG.font.attlist "INCLUDE" > +<![%SVG.font.attlist;[ +<!ATTLIST %SVG.font.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.External.attrib; + horiz-origin-x %Number.datatype; #IMPLIED + horiz-origin-y %Number.datatype; #IMPLIED + horiz-adv-x %Number.datatype; #REQUIRED + vert-origin-x %Number.datatype; #IMPLIED + vert-origin-y %Number.datatype; #IMPLIED + vert-adv-y %Number.datatype; #IMPLIED +> +<!-- end of SVG.font.attlist -->]]> + +<!-- font-face: Font Face Element ...................... --> + +<!ENTITY % SVG.font-face.element "INCLUDE" > +<![%SVG.font-face.element;[ +<!ENTITY % SVG.font-face.content + "(( %SVG.Description.class; )*, %SVG.font-face-src.qname;?, + %SVG.definition-src.qname;? )" +> +<!ELEMENT %SVG.font-face.qname; %SVG.font-face.content; > +<!-- end of SVG.font-face.element -->]]> + +<!ENTITY % SVG.font-face.attlist "INCLUDE" > +<![%SVG.font-face.attlist;[ +<!ATTLIST %SVG.font-face.qname; + %SVG.Core.attrib; + font-family CDATA #IMPLIED + font-style CDATA #IMPLIED + font-variant CDATA #IMPLIED + font-weight CDATA #IMPLIED + font-stretch CDATA #IMPLIED + font-size CDATA #IMPLIED + unicode-range CDATA #IMPLIED + units-per-em %Number.datatype; #IMPLIED + panose-1 CDATA #IMPLIED + stemv %Number.datatype; #IMPLIED + stemh %Number.datatype; #IMPLIED + slope %Number.datatype; #IMPLIED + cap-height %Number.datatype; #IMPLIED + x-height %Number.datatype; #IMPLIED + accent-height %Number.datatype; #IMPLIED + ascent %Number.datatype; #IMPLIED + descent %Number.datatype; #IMPLIED + widths CDATA #IMPLIED + bbox CDATA #IMPLIED + ideographic %Number.datatype; #IMPLIED + alphabetic %Number.datatype; #IMPLIED + mathematical %Number.datatype; #IMPLIED + hanging %Number.datatype; #IMPLIED + v-ideographic %Number.datatype; #IMPLIED + v-alphabetic %Number.datatype; #IMPLIED + v-mathematical %Number.datatype; #IMPLIED + v-hanging %Number.datatype; #IMPLIED + underline-position %Number.datatype; #IMPLIED + underline-thickness %Number.datatype; #IMPLIED + strikethrough-position %Number.datatype; #IMPLIED + strikethrough-thickness %Number.datatype; #IMPLIED + overline-position %Number.datatype; #IMPLIED + overline-thickness %Number.datatype; #IMPLIED +> +<!-- end of SVG.font-face.attlist -->]]> + +<!-- glyph: Glyph Element .............................. --> + +<!ENTITY % SVG.glyph.element "INCLUDE" > +<![%SVG.glyph.element;[ +<!ENTITY % SVG.glyph.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.glyph.qname; %SVG.glyph.content; > +<!-- end of SVG.glyph.element -->]]> + +<!ENTITY % SVG.glyph.attlist "INCLUDE" > +<![%SVG.glyph.attlist;[ +<!ATTLIST %SVG.glyph.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + unicode CDATA #IMPLIED + glyph-name CDATA #IMPLIED + d %PathData.datatype; #IMPLIED + orientation CDATA #IMPLIED + arabic-form CDATA #IMPLIED + lang %LanguageCodes.datatype; #IMPLIED + horiz-adv-x %Number.datatype; #IMPLIED + vert-origin-x %Number.datatype; #IMPLIED + vert-origin-y %Number.datatype; #IMPLIED + vert-adv-y %Number.datatype; #IMPLIED +> +<!-- end of SVG.glyph.attlist -->]]> + +<!-- missing-glyph: Missing Glyph Element .............. --> + +<!ENTITY % SVG.missing-glyph.element "INCLUDE" > +<![%SVG.missing-glyph.element;[ +<!ENTITY % SVG.missing-glyph.content + "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class; + %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class; + %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class; + %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class; + %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class; + %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class; + %SVG.Font.class; )*" +> +<!ELEMENT %SVG.missing-glyph.qname; %SVG.missing-glyph.content; > +<!-- end of SVG.missing-glyph.element -->]]> + +<!ENTITY % SVG.missing-glyph.attlist "INCLUDE" > +<![%SVG.missing-glyph.attlist;[ +<!ATTLIST %SVG.missing-glyph.qname; + %SVG.Core.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + d %PathData.datatype; #IMPLIED + horiz-adv-x %Number.datatype; #IMPLIED + vert-origin-x %Number.datatype; #IMPLIED + vert-origin-y %Number.datatype; #IMPLIED + vert-adv-y %Number.datatype; #IMPLIED +> +<!-- end of SVG.missing-glyph.attlist -->]]> + +<!-- hkern: Horizontal Kerning Element ................. --> + +<!ENTITY % SVG.hkern.element "INCLUDE" > +<![%SVG.hkern.element;[ +<!ENTITY % SVG.hkern.content "EMPTY" > +<!ELEMENT %SVG.hkern.qname; %SVG.hkern.content; > +<!-- end of SVG.hkern.element -->]]> + +<!ENTITY % SVG.hkern.attlist "INCLUDE" > +<![%SVG.hkern.attlist;[ +<!ATTLIST %SVG.hkern.qname; + %SVG.Core.attrib; + u1 CDATA #IMPLIED + g1 CDATA #IMPLIED + u2 CDATA #IMPLIED + g2 CDATA #IMPLIED + k %Number.datatype; #REQUIRED +> +<!-- end of SVG.hkern.attlist -->]]> + +<!-- vkern: Vertical Kerning Element ................... --> + +<!ENTITY % SVG.vkern.element "INCLUDE" > +<![%SVG.vkern.element;[ +<!ENTITY % SVG.vkern.content "EMPTY" > +<!ELEMENT %SVG.vkern.qname; %SVG.vkern.content; > +<!-- end of SVG.vkern.element -->]]> + +<!ENTITY % SVG.vkern.attlist "INCLUDE" > +<![%SVG.vkern.attlist;[ +<!ATTLIST %SVG.vkern.qname; + %SVG.Core.attrib; + u1 CDATA #IMPLIED + g1 CDATA #IMPLIED + u2 CDATA #IMPLIED + g2 CDATA #IMPLIED + k %Number.datatype; #REQUIRED +> +<!-- end of SVG.vkern.attlist -->]]> + +<!-- font-face-src: Font Face Source Element ........... --> + +<!ENTITY % SVG.font-face-src.element "INCLUDE" > +<![%SVG.font-face-src.element;[ +<!ENTITY % SVG.font-face-src.content + "( %SVG.font-face-uri.qname; | %SVG.font-face-name.qname; )+" +> +<!ELEMENT %SVG.font-face-src.qname; %SVG.font-face-src.content; > +<!-- end of SVG.font-face-src.element -->]]> + +<!ENTITY % SVG.font-face-src.attlist "INCLUDE" > +<![%SVG.font-face-src.attlist;[ +<!ATTLIST %SVG.font-face-src.qname; + %SVG.Core.attrib; +> +<!-- end of SVG.font-face-src.attlist -->]]> + +<!-- font-face-uri: Font Face URI Element .............. --> + +<!ENTITY % SVG.font-face-uri.element "INCLUDE" > +<![%SVG.font-face-uri.element;[ +<!ENTITY % SVG.font-face-uri.content + "( %SVG.font-face-format.qname; )*" +> +<!ELEMENT %SVG.font-face-uri.qname; %SVG.font-face-uri.content; > +<!-- end of SVG.font-face-uri.element -->]]> + +<!ENTITY % SVG.font-face-uri.attlist "INCLUDE" > +<![%SVG.font-face-uri.attlist;[ +<!ATTLIST %SVG.font-face-uri.qname; + %SVG.Core.attrib; + %SVG.XLinkRequired.attrib; +> +<!-- end of SVG.font-face-uri.attlist -->]]> + +<!-- font-face-format: Font Face Format Element ........ --> + +<!ENTITY % SVG.font-face-format.element "INCLUDE" > +<![%SVG.font-face-format.element;[ +<!ENTITY % SVG.font-face-format.content "EMPTY" > +<!ELEMENT %SVG.font-face-format.qname; %SVG.font-face-format.content; > +<!-- end of SVG.font-face-format.element -->]]> + +<!ENTITY % SVG.font-face-format.attlist "INCLUDE" > +<![%SVG.font-face-format.attlist;[ +<!ATTLIST %SVG.font-face-format.qname; + %SVG.Core.attrib; + string CDATA #IMPLIED +> +<!-- end of SVG.font-face-format.attlist -->]]> + +<!-- font-face-name: Font Face Name Element ............ --> + +<!ENTITY % SVG.font-face-name.element "INCLUDE" > +<![%SVG.font-face-name.element;[ +<!ENTITY % SVG.font-face-name.content "EMPTY" > +<!ELEMENT %SVG.font-face-name.qname; %SVG.font-face-name.content; > +<!-- end of SVG.font-face-name.element -->]]> + +<!ENTITY % SVG.font-face-name.attlist "INCLUDE" > +<![%SVG.font-face-name.attlist;[ +<!ATTLIST %SVG.font-face-name.qname; + %SVG.Core.attrib; + name CDATA #IMPLIED +> +<!-- end of SVG.font-face-name.attlist -->]]> + +<!-- definition-src: Definition Source Element ......... --> + +<!ENTITY % SVG.definition-src.element "INCLUDE" > +<![%SVG.definition-src.element;[ +<!ENTITY % SVG.definition-src.content "EMPTY" > +<!ELEMENT %SVG.definition-src.qname; %SVG.definition-src.content; > +<!-- end of SVG.definition-src.element -->]]> + +<!ENTITY % SVG.definition-src.attlist "INCLUDE" > +<![%SVG.definition-src.attlist;[ +<!ATTLIST %SVG.definition-src.qname; + %SVG.Core.attrib; + %SVG.XLinkRequired.attrib; +> +<!-- end of SVG.definition-src.attlist -->]]> + +<!-- end of svg-font.mod --> +]]> + +<!-- Extensibility Module ........................................ --> +<!ENTITY % svg-extensibility.module "INCLUDE" > +<![%svg-extensibility.module;[ +<!ENTITY % svg-extensibility.mod + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Extensibility//EN" + "svg-extensibility.mod" > +<!-- ....................................................................... --> +<!-- SVG 1.1 Extensibility Module .......................................... --> +<!-- file: svg-extensibility.mod + + This is SVG, a language for describing two-dimensional graphics in XML. + Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS SVG 1.1 Extensibility//EN" + SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-extensibility.mod" + + ....................................................................... --> + +<!-- Extensibility + + foreignObject + + This module declares markup to provide support for extensibility. +--> + +<!-- Qualified Names (Default) ......................... --> + +<!ENTITY % SVG.foreignObject.qname "foreignObject" > + +<!-- Attribute Collections (Default) ................... --> + +<!ENTITY % SVG.Core.attrib "" > +<!ENTITY % SVG.Conditional.attrib "" > +<!ENTITY % SVG.Style.attrib "" > +<!ENTITY % SVG.Viewport.attrib "" > +<!ENTITY % SVG.Text.attrib "" > +<!ENTITY % SVG.TextContent.attrib "" > +<!ENTITY % SVG.Font.attrib "" > +<!ENTITY % SVG.Paint.attrib "" > +<!ENTITY % SVG.Color.attrib "" > +<!ENTITY % SVG.Opacity.attrib "" > +<!ENTITY % SVG.Graphics.attrib "" > +<!ENTITY % SVG.Marker.attrib "" > +<!ENTITY % SVG.Gradient.attrib "" > +<!ENTITY % SVG.Clip.attrib "" > +<!ENTITY % SVG.Mask.attrib "" > +<!ENTITY % SVG.Filter.attrib "" > +<!ENTITY % SVG.FilterColor.attrib "" > +<!ENTITY % SVG.GraphicalEvents.attrib "" > +<!ENTITY % SVG.Cursor.attrib "" > +<!ENTITY % SVG.External.attrib "" > + +<!-- SVG.Extensibility.class ........................... --> + +<!ENTITY % SVG.Extensibility.extra.class "" > + +<!ENTITY % SVG.Extensibility.class + "| %SVG.foreignObject.qname; %SVG.Extensibility.extra.class;" +> + +<!-- SVG.Presentation.attrib ........................... --> + +<!ENTITY % SVG.Presentation.extra.attrib "" > + +<!ENTITY % SVG.Presentation.attrib + "%SVG.Container.attrib; + %SVG.Viewport.attrib; + %SVG.Text.attrib; + %SVG.TextContent.attrib; + %SVG.Font.attrib; + %SVG.Paint.attrib; + %SVG.Color.attrib; + %SVG.Opacity.attrib; + %SVG.Graphics.attrib; + %SVG.Marker.attrib; + %SVG.Profile.attrib; + %SVG.Gradient.attrib; + %SVG.Clip.attrib; + %SVG.Mask.attrib; + %SVG.Filter.attrib; + %SVG.FilterColor.attrib; + %SVG.Cursor.attrib; + flood-color %SVGColor.datatype; #IMPLIED + flood-opacity %OpacityValue.datatype; #IMPLIED + lighting-color %SVGColor.datatype; #IMPLIED + %SVG.Presentation.extra.attrib;" +> + +<!-- foreignObject: Foreign Object Element ............. --> + +<!ENTITY % SVG.foreignObject.element "INCLUDE" > +<![%SVG.foreignObject.element;[ +<!ENTITY % SVG.foreignObject.content "( #PCDATA )" > +<!ELEMENT %SVG.foreignObject.qname; %SVG.foreignObject.content; > +<!-- end of SVG.foreignObject.element -->]]> + +<!ENTITY % SVG.foreignObject.attlist "INCLUDE" > +<![%SVG.foreignObject.attlist;[ +<!ATTLIST %SVG.foreignObject.qname; + %SVG.Core.attrib; + %SVG.Conditional.attrib; + %SVG.Style.attrib; + %SVG.Presentation.attrib; + %SVG.GraphicalEvents.attrib; + %SVG.External.attrib; + x %Coordinate.datatype; #IMPLIED + y %Coordinate.datatype; #IMPLIED + width %Length.datatype; #REQUIRED + height %Length.datatype; #REQUIRED + transform %TransformList.datatype; #IMPLIED +> +<!-- end of SVG.foreignObject.attlist -->]]> + +<!-- end of svg-extensibility.mod --> +]]> + +<!-- end of SVG 1.1 DTD .................................................... --> +<!-- ....................................................................... --> + +]]> + +<!-- Instantiate XHTML DTD ...................................... --> +<![%XHTML.module;[ +<!ENTITY % XHTML.dtd.decl + 'PUBLIC "%XHTML.dtd.fpi;" + "%XHTML.dtd.sysid;"' +> +<!ENTITY % XHTML.dtd %XHTML.dtd.decl; > +<!-- ....................................................................... --> +<!-- XHTML 1.1 DTD ........................................................ --> +<!-- file: xhtml11.dtd +--> + +<!-- XHTML 1.1 DTD + + This is XHTML, a reformulation of HTML as a modular XML application. + + The Extensible HyperText Markup Language (XHTML) + Copyright 1998-2001 World Wide Web Consortium + (Massachusetts Institute of Technology, Institut National de + Recherche en Informatique et en Automatique, Keio University). + All Rights Reserved. + + Permission to use, copy, modify and distribute the XHTML DTD and its + accompanying documentation for any purpose and without fee is hereby + granted in perpetuity, provided that the above copyright notice and + this paragraph appear in all copies. The copyright holders make no + representation about the suitability of the DTD for any purpose. + + It is provided "as is" without expressed or implied warranty. + + Author: Murray M. Altheim <altheim@eng.sun.com> + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + +--> +<!-- This is the driver file for version 1.1 of the XHTML DTD. + + Please use this formal public identifier to identify it: + + "-//W3C//DTD XHTML 1.1//EN" +--> +<!ENTITY % XHTML.version "-//W3C//DTD XHTML 1.1//EN" > + +<!-- Use this URI to identify the default namespace: + + "http://www.w3.org/1999/xhtml" + + See the Qualified Names module for information + on the use of namespace prefixes in the DTD. +--> +<!ENTITY % NS.prefixed "IGNORE" > +<!ENTITY % XHTML.prefix "" > + +<!-- Reserved for use with the XLink namespace: +--> +<!ENTITY % XLINK.xmlns "" > +<!ENTITY % XLINK.xmlns.attrib "" > + +<!-- For example, if you are using XHTML 1.1 directly, use the FPI + in the DOCTYPE declaration, with the xmlns attribute on the + document element to identify the default namespace: + + <?xml version="1.0"?> + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en"> + ... + </html> + + Revisions: + (none) +--> + +<!-- reserved for future use with document profiles --> +<!ENTITY % XHTML.profile "" > + +<!-- Bidirectional Text features + This feature-test entity is used to declare elements + and attributes used for bidirectional text support. +--> +<!ENTITY % XHTML.bidi "INCLUDE" > + +<?doc type="doctype" role="title" { XHTML 1.1 } ?> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Pre-Framework Redeclaration placeholder .................... --> +<!-- this serves as a location to insert markup declarations + into the DTD prior to the framework declarations. +--> +<!ENTITY % xhtml-prefw-redecl.module "IGNORE" > +<![%xhtml-prefw-redecl.module;[ +%xhtml-prefw-redecl.mod; +<!-- end of xhtml-prefw-redecl.module -->]]> + +<!ENTITY % xhtml-events.module "INCLUDE" > + +<!-- Inline Style Module ........................................ --> +<!ENTITY % xhtml-inlstyle.module "INCLUDE" > +<![%xhtml-inlstyle.module;[ +<!ENTITY % xhtml-inlstyle.mod + PUBLIC "-//W3C//ELEMENTS XHTML Inline Style 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstyle-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Inline Style Module ........................................... --> +<!-- file: xhtml-inlstyle-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Inline Style 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstyle-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Inline Style + + This module declares the 'style' attribute, used to support inline + style markup. This module must be instantiated prior to the XHTML + Common Attributes module in order to be included in %Core.attrib;. +--> + +<!ENTITY % style.attrib + "style CDATA #IMPLIED" +> + + +<!ENTITY % Core.extra.attrib + "%style.attrib;" +> + +<!-- end of xhtml-inlstyle-1.mod --> +]]> + +<!-- declare Document Model module instantiated in framework +--> +<!ENTITY % xhtml-model.mod + PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" + "xhtml11-model-1.mod" > + +<!-- Modular Framework Module (required) ......................... --> +<!ENTITY % xhtml-framework.module "INCLUDE" > +<![%xhtml-framework.module;[ +<!ENTITY % xhtml-framework.mod + PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-framework-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Modular Framework Module ...................................... --> +<!-- file: xhtml-framework-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-framework-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Modular Framework + + This required module instantiates the modules needed + to support the XHTML modularization model, including: + + + notations + + datatypes + + namespace-qualified names + + common attributes + + document model + + character entities + + The Intrinsic Events module is ignored by default but + occurs in this module because it must be instantiated + prior to Attributes but after Datatypes. +--> + +<!ENTITY % xhtml-arch.module "IGNORE" > +<![%xhtml-arch.module;[ +<!ENTITY % xhtml-arch.mod + PUBLIC "-//W3C//ELEMENTS XHTML Base Architecture 1.0//EN" + "xhtml-arch-1.mod" > +%xhtml-arch.mod;]]> + +<!ENTITY % xhtml-notations.module "INCLUDE" > +<![%xhtml-notations.module;[ +<!ENTITY % xhtml-notations.mod + PUBLIC "-//W3C//NOTATIONS XHTML Notations 1.0//EN" + "xhtml-notations-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Notations Module .............................................. --> +<!-- file: xhtml-notations-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//NOTATIONS XHTML Notations 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-notations-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Notations + + defines the following notations, many of these imported from + other specifications and standards. When an existing FPI is + known, it is incorporated here. +--> + +<!-- XML Notations ..................................... --> +<!-- SGML and XML Notations ............................ --> + +<!-- W3C XML 1.0 Recommendation --> +<!NOTATION w3c-xml + PUBLIC "ISO 8879//NOTATION Extensible Markup Language (XML) 1.0//EN" > + +<!-- XML 1.0 CDATA --> +<!NOTATION cdata + PUBLIC "-//W3C//NOTATION XML 1.0: CDATA//EN" > + +<!-- SGML Formal Public Identifiers --> +<!NOTATION fpi + PUBLIC "ISO 8879:1986//NOTATION Formal Public Identifier//EN" > + +<!-- XHTML Notations ................................... --> + +<!-- Length defined for cellpadding/cellspacing --> + +<!-- nn for pixels or nn% for percentage length --> +<!NOTATION length + PUBLIC "-//W3C//NOTATION XHTML Datatype: Length//EN" > + +<!-- space-separated list of link types --> +<!NOTATION linkTypes + PUBLIC "-//W3C//NOTATION XHTML Datatype: LinkTypes//EN" > + +<!-- single or comma-separated list of media descriptors --> +<!NOTATION mediaDesc + PUBLIC "-//W3C//NOTATION XHTML Datatype: MediaDesc//EN" > + +<!-- pixel, percentage, or relative --> +<!NOTATION multiLength + PUBLIC "-//W3C//NOTATION XHTML Datatype: MultiLength//EN" > + +<!-- one or more digits (NUMBER) --> +<!NOTATION number + PUBLIC "-//W3C//NOTATION XHTML Datatype: Number//EN" > + +<!-- integer representing length in pixels --> +<!NOTATION pixels + PUBLIC "-//W3C//NOTATION XHTML Datatype: Pixels//EN" > + +<!-- script expression --> +<!NOTATION script + PUBLIC "-//W3C//NOTATION XHTML Datatype: Script//EN" > + +<!-- textual content --> +<!NOTATION text + PUBLIC "-//W3C//NOTATION XHTML Datatype: Text//EN" > + +<!-- Imported Notations ................................ --> + +<!-- a single character from [ISO10646] --> +<!NOTATION character + PUBLIC "-//W3C//NOTATION XHTML Datatype: Character//EN" > + +<!-- a character encoding, as per [RFC2045] --> +<!NOTATION charset + PUBLIC "-//W3C//NOTATION XHTML Datatype: Charset//EN" > + +<!-- a space separated list of character encodings, as per [RFC2045] --> +<!NOTATION charsets + PUBLIC "-//W3C//NOTATION XHTML Datatype: Charsets//EN" > + +<!-- media type, as per [RFC2045] --> +<!NOTATION contentType + PUBLIC "-//W3C//NOTATION XHTML Datatype: ContentType//EN" > + +<!-- comma-separated list of media types, as per [RFC2045] --> +<!NOTATION contentTypes + PUBLIC "-//W3C//NOTATION XHTML Datatype: ContentTypes//EN" > + +<!-- date and time information. ISO date format --> +<!NOTATION datetime + PUBLIC "-//W3C//NOTATION XHTML Datatype: Datetime//EN" > + +<!-- a language code, as per [RFC3066] --> +<!NOTATION languageCode + PUBLIC "-//W3C//NOTATION XHTML Datatype: LanguageCode//EN" > + +<!-- a Uniform Resource Identifier, see [URI] --> +<!NOTATION uri + PUBLIC "-//W3C//NOTATION XHTML Datatype: URI//EN" > + +<!-- a space-separated list of Uniform Resource Identifiers, see [URI] --> +<!NOTATION uris + PUBLIC "-//W3C//NOTATION XHTML Datatype: URIs//EN" > + +<!-- end of xhtml-notations-1.mod --> +]]> + +<!ENTITY % xhtml-datatypes.module "INCLUDE" > +<![%xhtml-datatypes.module;[ +<!ENTITY % xhtml-datatypes.mod + PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN" + "xhtml-datatypes-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Datatypes Module .............................................. --> +<!-- file: xhtml-datatypes-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Datatypes + + defines containers for the following datatypes, many of + these imported from other specifications and standards. +--> + +<!-- Length defined for cellpadding/cellspacing --> + +<!-- nn for pixels or nn% for percentage length --> +<!ENTITY % Length.datatype "CDATA" > + +<!-- space-separated list of link types --> +<!ENTITY % LinkTypes.datatype "NMTOKENS" > + +<!-- single or comma-separated list of media descriptors --> +<!ENTITY % MediaDesc.datatype "CDATA" > + +<!-- pixel, percentage, or relative --> +<!ENTITY % MultiLength.datatype "CDATA" > + +<!-- one or more digits (NUMBER) --> +<!ENTITY % Number.datatype "CDATA" > + +<!-- integer representing length in pixels --> +<!ENTITY % Pixels.datatype "CDATA" > + +<!-- script expression --> +<!ENTITY % Script.datatype "CDATA" > + +<!-- textual content --> +<!ENTITY % Text.datatype "CDATA" > + +<!-- Imported Datatypes ................................ --> + +<!-- a single character from [ISO10646] --> +<!ENTITY % Character.datatype "CDATA" > + +<!-- a character encoding, as per [RFC2045] --> +<!ENTITY % Charset.datatype "CDATA" > + +<!-- a space separated list of character encodings, as per [RFC2045] --> +<!ENTITY % Charsets.datatype "CDATA" > + +<!-- Color specification using color name or sRGB (#RRGGBB) values --> +<!ENTITY % Color.datatype "CDATA" > + +<!-- media type, as per [RFC2045] --> +<!ENTITY % ContentType.datatype "CDATA" > + +<!-- comma-separated list of media types, as per [RFC2045] --> +<!ENTITY % ContentTypes.datatype "CDATA" > + +<!-- date and time information. ISO date format --> +<!ENTITY % Datetime.datatype "CDATA" > + +<!-- formal public identifier, as per [ISO8879] --> +<!ENTITY % FPI.datatype "CDATA" > + +<!-- a language code, as per [RFC3066] --> +<!ENTITY % LanguageCode.datatype "NMTOKEN" > + +<!-- a Uniform Resource Identifier, see [URI] --> +<!ENTITY % URI.datatype "CDATA" > + +<!-- a space-separated list of Uniform Resource Identifiers, see [URI] --> +<!ENTITY % URIs.datatype "CDATA" > + +<!-- end of xhtml-datatypes-1.mod --> +]]> + +<!-- placeholder for XLink support module --> +<!ENTITY % xhtml-xlink.mod "" > + + +<!ENTITY % xhtml-qname.module "INCLUDE" > +<![%xhtml-qname.module;[ +<!ENTITY % xhtml-qname.mod + PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN" + "xhtml-qname-1.mod" > +<!-- ....................................................................... --> +<!-- XHTML Qname Module ................................................... --> +<!-- file: xhtml-qname-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-qname-1.mod" + + Revisions: +#2000-10-22: added qname declarations for ruby elements + ....................................................................... --> + +<!-- XHTML Qname (Qualified Name) Module + + This module is contained in two parts, labeled Section 'A' and 'B': + + Section A declares parameter entities to support namespace- + qualified names, namespace declarations, and name prefixing + for XHTML and extensions. + + Section B declares parameter entities used to provide + namespace-qualified names for all XHTML element types: + + %applet.qname; the xmlns-qualified name for <applet> + %base.qname; the xmlns-qualified name for <base> + ... + + XHTML extensions would create a module similar to this one. + Included in the XHTML distribution is a template module + ('template-qname-1.mod') suitable for this purpose. +--> + +<!-- Section A: XHTML XML Namespace Framework :::::::::::::::::::: --> + +<!-- 1. Declare a %XHTML.prefixed; conditional section keyword, used + to activate namespace prefixing. The default value should + inherit '%NS.prefixed;' from the DTD driver, so that unless + overridden, the default behaviour follows the overall DTD + prefixing scheme. +--> +<!ENTITY % NS.prefixed "IGNORE" > +<!ENTITY % XHTML.prefixed "%NS.prefixed;" > + +<!-- 2. Declare a parameter entity (eg., %XHTML.xmlns;) containing + the URI reference used to identify the XHTML namespace: +--> +<!ENTITY % XHTML.xmlns "http://www.w3.org/1999/xhtml" > + +<!-- 3. Declare parameter entities (eg., %XHTML.prefix;) containing + the default namespace prefix string(s) to use when prefixing + is enabled. This may be overridden in the DTD driver or the + internal subset of an document instance. If no default prefix + is desired, this may be declared as an empty string. + + NOTE: As specified in [XMLNAMES], the namespace prefix serves + as a proxy for the URI reference, and is not in itself significant. +--> +<!ENTITY % XHTML.prefix "" > + +<!-- 4. Declare parameter entities (eg., %XHTML.pfx;) containing the + colonized prefix(es) (eg., '%XHTML.prefix;:') used when + prefixing is active, an empty string when it is not. +--> +<![%XHTML.prefixed;[ +<!ENTITY % XHTML.pfx "%XHTML.prefix;:" > +]]> +<!ENTITY % XHTML.pfx "" > + +<!-- declare qualified name extensions here ............ --> +<!ENTITY % xhtml-qname-extra.mod "" > +<!-- ....................................................................... --> +<!-- MathML Qualified Names Module ........................................ --> +<!-- file: mathml2-qname-1.mod + + This is the Mathematical Markup Language (MathML) 2.0, an XML + application for describing mathematical notation and capturing + both its structure and content. + + Copyright 1998-2000 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN" + SYSTEM "mathml2-qname-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- MathML Qualified Names + + This module is contained in two parts, labeled Section 'A' and 'B': + + Section A declares parameter entities to support namespace- + qualified names, namespace declarations, and name prefixing + for MathML. + + Section B declares parameter entities used to provide + namespace-qualified names for all MathML element types. + + This module is derived from the XHTML Qualified Names Template module. +--> + +<!-- Section A: XHTML XML Namespace Framework :::::::::::::::::::: --> + +<!ENTITY % NS.prefixed "IGNORE" > +<!ENTITY % MATHML.prefixed "%NS.prefixed;" > + +<!-- XLink ............... --> + +<!ENTITY % XLINK.xmlns "http://www.w3.org/1999/xlink" > +<!ENTITY % XLINK.xmlns.attrib + "xmlns:xlink CDATA #FIXED '%XLINK.xmlns;'" +> + +<!-- MathML .............. --> + +<!ENTITY % MATHML.xmlns "http://www.w3.org/1998/Math/MathML" > +<!ENTITY % MATHML.prefix "m" > +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.xmlns.extra.attrib "" > +]]> +<!ENTITY % MATHML.xmlns.extra.attrib + "%XLINK.xmlns.attrib;" > + +<![%MATHML.prefixed;[ +<!ENTITY % MATHML.pfx "%MATHML.prefix;:" > +<!ENTITY % MATHML.xmlns.attrib + "xmlns:%MATHML.prefix; CDATA #FIXED '%MATHML.xmlns;' + %MATHML.xmlns.extra.attrib;" +> +]]> +<!ENTITY % MATHML.pfx "" > +<!ENTITY % MATHML.xmlns.attrib + "xmlns CDATA #FIXED '%MATHML.xmlns;' + %MATHML.xmlns.extra.attrib;" +> + +<![%NS.prefixed;[ +<!ENTITY % XHTML.xmlns.extra.attrib + "%MATHML.xmlns.attrib;" > +]]> +<!ENTITY % XHTML.xmlns.extra.attrib + "%XLINK.xmlns.attrib;" +> + +<!-- Section B: MathML Qualified Names ::::::::::::::::::::::::::::: --> + +<!-- 9. This section declares parameter entities used to provide + namespace-qualified names for all MathML element types. +--> + +<!ENTITY % abs.qname "%MATHML.pfx;abs" > +<!ENTITY % and.qname "%MATHML.pfx;and" > +<!ENTITY % annotation-xml.qname "%MATHML.pfx;annotation-xml" > +<!ENTITY % annotation.qname "%MATHML.pfx;annotation" > +<!ENTITY % apply.qname "%MATHML.pfx;apply" > +<!ENTITY % approx.qname "%MATHML.pfx;approx" > +<!ENTITY % arccos.qname "%MATHML.pfx;arccos" > +<!ENTITY % arccosh.qname "%MATHML.pfx;arccosh" > +<!ENTITY % arccosh.qname "%MATHML.pfx;arccosh" > +<!ENTITY % arccot.qname "%MATHML.pfx;arccot" > +<!ENTITY % arccoth.qname "%MATHML.pfx;arccoth" > +<!ENTITY % arccsc.qname "%MATHML.pfx;arccsc" > +<!ENTITY % arccsch.qname "%MATHML.pfx;arccsch" > +<!ENTITY % arcsec.qname "%MATHML.pfx;arcsec" > +<!ENTITY % arcsech.qname "%MATHML.pfx;arcsech" > +<!ENTITY % arcsin.qname "%MATHML.pfx;arcsin" > +<!ENTITY % arcsinh.qname "%MATHML.pfx;arcsinh" > +<!ENTITY % arctan.qname "%MATHML.pfx;arctan" > +<!ENTITY % arctanh.qname "%MATHML.pfx;arctanh" > +<!ENTITY % arg.qname "%MATHML.pfx;arg" > +<!ENTITY % bvar.qname "%MATHML.pfx;bvar" > +<!ENTITY % card.qname "%MATHML.pfx;card" > +<!ENTITY % cartesianproduct.qname "%MATHML.pfx;cartesianproduct" > +<!ENTITY % ceiling.qname "%MATHML.pfx;ceiling" > +<!ENTITY % ci.qname "%MATHML.pfx;ci" > +<!ENTITY % cn.qname "%MATHML.pfx;cn" > +<!ENTITY % codomain.qname "%MATHML.pfx;codomain" > +<!ENTITY % complexes.qname "%MATHML.pfx;complexes" > +<!ENTITY % compose.qname "%MATHML.pfx;compose" > +<!ENTITY % condition.qname "%MATHML.pfx;condition" > +<!ENTITY % conjugate.qname "%MATHML.pfx;conjugate" > +<!ENTITY % cos.qname "%MATHML.pfx;cos" > +<!ENTITY % cosh.qname "%MATHML.pfx;cosh" > +<!ENTITY % cot.qname "%MATHML.pfx;cot" > +<!ENTITY % coth.qname "%MATHML.pfx;coth" > +<!ENTITY % csc.qname "%MATHML.pfx;csc" > +<!ENTITY % csch.qname "%MATHML.pfx;csch" > +<!ENTITY % csymbol.qname "%MATHML.pfx;csymbol" > +<!ENTITY % curl.qname "%MATHML.pfx;curl" > +<!ENTITY % declare.qname "%MATHML.pfx;declare" > +<!ENTITY % degree.qname "%MATHML.pfx;degree" > +<!ENTITY % determinant.qname "%MATHML.pfx;determinant" > +<!ENTITY % diff.qname "%MATHML.pfx;diff" > +<!ENTITY % divergence.qname "%MATHML.pfx;divergence" > +<!ENTITY % divide.qname "%MATHML.pfx;divide" > +<!ENTITY % domain.qname "%MATHML.pfx;domain" > +<!ENTITY % domainofapplication.qname "%MATHML.pfx;domainofapplication" > +<!ENTITY % emptyset.qname "%MATHML.pfx;emptyset" > +<!ENTITY % eq.qname "%MATHML.pfx;eq" > +<!ENTITY % equivalent.qname "%MATHML.pfx;equivalent" > +<!ENTITY % eulergamma.qname "%MATHML.pfx;eulergamma" > +<!ENTITY % exists.qname "%MATHML.pfx;exists" > +<!ENTITY % exp.qname "%MATHML.pfx;exp" > +<!ENTITY % exponentiale.qname "%MATHML.pfx;exponentiale" > +<!ENTITY % factorial.qname "%MATHML.pfx;factorial" > +<!ENTITY % factorof.qname "%MATHML.pfx;factorof" > +<!ENTITY % false.qname "%MATHML.pfx;false" > +<!ENTITY % floor.qname "%MATHML.pfx;floor" > +<!ENTITY % fn.qname "%MATHML.pfx;fn" > +<!ENTITY % forall.qname "%MATHML.pfx;forall" > +<!ENTITY % gcd.qname "%MATHML.pfx;gcd" > +<!ENTITY % geq.qname "%MATHML.pfx;geq" > +<!ENTITY % grad.qname "%MATHML.pfx;grad" > +<!ENTITY % gt.qname "%MATHML.pfx;gt" > +<!ENTITY % ident.qname "%MATHML.pfx;ident" > +<!ENTITY % image.qname "%MATHML.pfx;image" > +<!ENTITY % imaginary.qname "%MATHML.pfx;imaginary" > +<!ENTITY % imaginaryi.qname "%MATHML.pfx;imaginaryi" > +<!ENTITY % implies.qname "%MATHML.pfx;implies" > +<!ENTITY % in.qname "%MATHML.pfx;in" > +<!ENTITY % infinity.qname "%MATHML.pfx;infinity" > +<!ENTITY % int.qname "%MATHML.pfx;int" > +<!ENTITY % integers.qname "%MATHML.pfx;integers" > +<!ENTITY % intersect.qname "%MATHML.pfx;intersect" > +<!ENTITY % interval.qname "%MATHML.pfx;interval" > +<!ENTITY % inverse.qname "%MATHML.pfx;inverse" > +<!ENTITY % lambda.qname "%MATHML.pfx;lambda" > +<!ENTITY % laplacian.qname "%MATHML.pfx;laplacian" > +<!ENTITY % lcm.qname "%MATHML.pfx;lcm" > +<!ENTITY % leq.qname "%MATHML.pfx;leq" > +<!ENTITY % limit.qname "%MATHML.pfx;limit" > +<!ENTITY % list.qname "%MATHML.pfx;list" > +<!ENTITY % ln.qname "%MATHML.pfx;ln" > +<!ENTITY % log.qname "%MATHML.pfx;log" > +<!ENTITY % logbase.qname "%MATHML.pfx;logbase" > +<!ENTITY % lowlimit.qname "%MATHML.pfx;lowlimit" > +<!ENTITY % lt.qname "%MATHML.pfx;lt" > +<!ENTITY % maction.qname "%MATHML.pfx;maction" > +<!ENTITY % maligngroup.qname "%MATHML.pfx;maligngroup" > +<!ENTITY % malignmark.qname "%MATHML.pfx;malignmark" > +<!ENTITY % math.qname "%MATHML.pfx;math" > +<!ENTITY % matrix.qname "%MATHML.pfx;matrix" > +<!ENTITY % matrixrow.qname "%MATHML.pfx;matrixrow" > +<!ENTITY % max.qname "%MATHML.pfx;max" > +<!ENTITY % mean.qname "%MATHML.pfx;mean" > +<!ENTITY % median.qname "%MATHML.pfx;median" > +<!ENTITY % menclose.qname "%MATHML.pfx;menclose" > +<!ENTITY % merror.qname "%MATHML.pfx;merror" > +<!ENTITY % mfenced.qname "%MATHML.pfx;mfenced" > +<!ENTITY % mfrac.qname "%MATHML.pfx;mfrac" > +<!ENTITY % mglyph.qname "%MATHML.pfx;mglyph" > +<!ENTITY % mi.qname "%MATHML.pfx;mi" > +<!ENTITY % min.qname "%MATHML.pfx;min" > +<!ENTITY % minus.qname "%MATHML.pfx;minus" > +<!ENTITY % mlabeledtr.qname "%MATHML.pfx;mlabeledtr" > +<!ENTITY % mmultiscripts.qname "%MATHML.pfx;mmultiscripts" > +<!ENTITY % mn.qname "%MATHML.pfx;mn" > +<!ENTITY % mo.qname "%MATHML.pfx;mo" > +<!ENTITY % mode.qname "%MATHML.pfx;mode" > +<!ENTITY % moment.qname "%MATHML.pfx;moment" > +<!ENTITY % momentabout.qname "%MATHML.pfx;momentabout" > +<!ENTITY % mover.qname "%MATHML.pfx;mover" > +<!ENTITY % mpadded.qname "%MATHML.pfx;mpadded" > +<!ENTITY % mphantom.qname "%MATHML.pfx;mphantom" > +<!ENTITY % mprescripts.qname "%MATHML.pfx;mprescripts" > +<!ENTITY % mroot.qname "%MATHML.pfx;mroot" > +<!ENTITY % mrow.qname "%MATHML.pfx;mrow" > +<!ENTITY % ms.qname "%MATHML.pfx;ms" > +<!ENTITY % mspace.qname "%MATHML.pfx;mspace" > +<!ENTITY % msqrt.qname "%MATHML.pfx;msqrt" > +<!ENTITY % mstyle.qname "%MATHML.pfx;mstyle" > +<!ENTITY % msub.qname "%MATHML.pfx;msub" > +<!ENTITY % msubsup.qname "%MATHML.pfx;msubsup" > +<!ENTITY % msup.qname "%MATHML.pfx;msup" > +<!ENTITY % mtable.qname "%MATHML.pfx;mtable" > +<!ENTITY % mtd.qname "%MATHML.pfx;mtd" > +<!ENTITY % mtext.qname "%MATHML.pfx;mtext" > +<!ENTITY % mtr.qname "%MATHML.pfx;mtr" > +<!ENTITY % munder.qname "%MATHML.pfx;munder" > +<!ENTITY % munderover.qname "%MATHML.pfx;munderover" > +<!ENTITY % naturalnumbers.qname "%MATHML.pfx;naturalnumbers" > +<!ENTITY % neq.qname "%MATHML.pfx;neq" > +<!ENTITY % none.qname "%MATHML.pfx;none" > +<!ENTITY % not.qname "%MATHML.pfx;not" > +<!ENTITY % notanumber.qname "%MATHML.pfx;notanumber" > +<!ENTITY % notin.qname "%MATHML.pfx;notin" > +<!ENTITY % notprsubset.qname "%MATHML.pfx;notprsubset" > +<!ENTITY % notsubset.qname "%MATHML.pfx;notsubset" > +<!ENTITY % or.qname "%MATHML.pfx;or" > +<!ENTITY % otherwise.qname "%MATHML.pfx;otherwise" > +<!ENTITY % outerproduct.qname "%MATHML.pfx;outerproduct" > +<!ENTITY % partialdiff.qname "%MATHML.pfx;partialdiff" > +<!ENTITY % pi.qname "%MATHML.pfx;pi" > +<!ENTITY % piece.qname "%MATHML.pfx;piece" > +<!ENTITY % piecewise.qname "%MATHML.pfx;piecewise" > +<!ENTITY % plus.qname "%MATHML.pfx;plus" > +<!ENTITY % power.qname "%MATHML.pfx;power" > +<!ENTITY % primes.qname "%MATHML.pfx;primes" > +<!ENTITY % product.qname "%MATHML.pfx;product" > +<!ENTITY % prsubset.qname "%MATHML.pfx;prsubset" > +<!ENTITY % quotient.qname "%MATHML.pfx;quotient" > +<!ENTITY % rationals.qname "%MATHML.pfx;rationals" > +<!ENTITY % real.qname "%MATHML.pfx;real" > +<!ENTITY % reals.qname "%MATHML.pfx;reals" > +<!ENTITY % reln.qname "%MATHML.pfx;reln" > +<!ENTITY % rem.qname "%MATHML.pfx;rem" > +<!ENTITY % root.qname "%MATHML.pfx;root" > +<!ENTITY % scalarproduct.qname "%MATHML.pfx;scalarproduct" > +<!ENTITY % sdev.qname "%MATHML.pfx;sdev" > +<!ENTITY % sec.qname "%MATHML.pfx;sec" > +<!ENTITY % sech.qname "%MATHML.pfx;sech" > +<!ENTITY % selector.qname "%MATHML.pfx;selector" > +<!ENTITY % semantics.qname "%MATHML.pfx;semantics" > +<!ENTITY % sep.qname "%MATHML.pfx;sep" > +<!ENTITY % set.qname "%MATHML.pfx;set" > +<!ENTITY % setdiff.qname "%MATHML.pfx;setdiff" > +<!ENTITY % sin.qname "%MATHML.pfx;sin" > +<!ENTITY % sinh.qname "%MATHML.pfx;sinh" > +<!ENTITY % subset.qname "%MATHML.pfx;subset" > +<!ENTITY % sum.qname "%MATHML.pfx;sum" > +<!ENTITY % tan.qname "%MATHML.pfx;tan" > +<!ENTITY % tanh.qname "%MATHML.pfx;tanh" > +<!ENTITY % tendsto.qname "%MATHML.pfx;tendsto" > +<!ENTITY % times.qname "%MATHML.pfx;times" > +<!ENTITY % transpose.qname "%MATHML.pfx;transpose" > +<!ENTITY % true.qname "%MATHML.pfx;true" > +<!ENTITY % union.qname "%MATHML.pfx;union" > +<!ENTITY % uplimit.qname "%MATHML.pfx;uplimit" > +<!ENTITY % variance.qname "%MATHML.pfx;variance" > +<!ENTITY % vector.qname "%MATHML.pfx;vector" > +<!ENTITY % vectorproduct.qname "%MATHML.pfx;vectorproduct" > +<!ENTITY % xor.qname "%MATHML.pfx;xor" > + + +<!-- ignores subsequent instantiation of this module when + used as external subset rather than module fragment. + NOTE: Do not modify this parameter entity, otherwise + a recursive parsing situation may result. +--> +<!ENTITY % mathml-qname.module "IGNORE" > + +<!-- end of template-qname-1.mod --> + + +<!-- 5. The parameter entity %XHTML.xmlns.extra.attrib; may be + redeclared to contain any non-XHTML namespace declaration + attributes for namespaces embedded in XHTML. The default + is an empty string. XLink should be included here if used + in the DTD. +--> +<!ENTITY % XHTML.xmlns.extra.attrib "" > + +<!-- The remainder of Section A is only followed in XHTML, not extensions. --> + +<!-- Declare a parameter entity %NS.decl.attrib; containing + all XML Namespace declarations used in the DTD, plus the + xmlns declaration for XHTML, its form dependent on whether + prefixing is active. +--> +<![%XHTML.prefixed;[ +<!ENTITY % NS.decl.attrib + "xmlns:%XHTML.prefix; %URI.datatype; #FIXED '%XHTML.xmlns;' + %XHTML.xmlns.extra.attrib;" +> +]]> +<!ENTITY % NS.decl.attrib + "%XHTML.xmlns.extra.attrib;" +> + +<!-- This is a placeholder for future XLink support. +--> +<!ENTITY % XLINK.xmlns.attrib "" > + +<!-- Declare a parameter entity %NS.decl.attrib; containing all + XML namespace declaration attributes used by XHTML, including + a default xmlns attribute when prefixing is inactive. +--> +<![%XHTML.prefixed;[ +<!ENTITY % XHTML.xmlns.attrib + "%NS.decl.attrib; + %XLINK.xmlns.attrib;" +> +]]> +<!ENTITY % XHTML.xmlns.attrib + "xmlns %URI.datatype; #FIXED '%XHTML.xmlns;' + %XLINK.xmlns.attrib;" +> + +<!-- placeholder for qualified name redeclarations --> +<!ENTITY % xhtml-qname.redecl "" > + + +<!-- Section B: XHTML Qualified Names ::::::::::::::::::::::::::::: --> + +<!-- 6. This section declares parameter entities used to provide + namespace-qualified names for all XHTML element types. +--> + +<!-- module: xhtml-applet-1.mod --> +<!ENTITY % applet.qname "%XHTML.pfx;applet" > + +<!-- module: xhtml-base-1.mod --> +<!ENTITY % base.qname "%XHTML.pfx;base" > + +<!-- module: xhtml-bdo-1.mod --> +<!ENTITY % bdo.qname "%XHTML.pfx;bdo" > + +<!-- module: xhtml-blkphras-1.mod --> +<!ENTITY % address.qname "%XHTML.pfx;address" > +<!ENTITY % blockquote.qname "%XHTML.pfx;blockquote" > +<!ENTITY % pre.qname "%XHTML.pfx;pre" > +<!ENTITY % h1.qname "%XHTML.pfx;h1" > +<!ENTITY % h2.qname "%XHTML.pfx;h2" > +<!ENTITY % h3.qname "%XHTML.pfx;h3" > +<!ENTITY % h4.qname "%XHTML.pfx;h4" > +<!ENTITY % h5.qname "%XHTML.pfx;h5" > +<!ENTITY % h6.qname "%XHTML.pfx;h6" > + +<!-- module: xhtml-blkpres-1.mod --> +<!ENTITY % hr.qname "%XHTML.pfx;hr" > + +<!-- module: xhtml-blkstruct-1.mod --> +<!ENTITY % div.qname "%XHTML.pfx;div" > +<!ENTITY % p.qname "%XHTML.pfx;p" > + +<!-- module: xhtml-edit-1.mod --> +<!ENTITY % ins.qname "%XHTML.pfx;ins" > +<!ENTITY % del.qname "%XHTML.pfx;del" > + +<!-- module: xhtml-form-1.mod --> +<!ENTITY % form.qname "%XHTML.pfx;form" > +<!ENTITY % label.qname "%XHTML.pfx;label" > +<!ENTITY % input.qname "%XHTML.pfx;input" > +<!ENTITY % select.qname "%XHTML.pfx;select" > +<!ENTITY % optgroup.qname "%XHTML.pfx;optgroup" > +<!ENTITY % option.qname "%XHTML.pfx;option" > +<!ENTITY % textarea.qname "%XHTML.pfx;textarea" > +<!ENTITY % fieldset.qname "%XHTML.pfx;fieldset" > +<!ENTITY % legend.qname "%XHTML.pfx;legend" > +<!ENTITY % button.qname "%XHTML.pfx;button" > + +<!-- module: xhtml-hypertext-1.mod --> +<!ENTITY % a.qname "%XHTML.pfx;a" > + +<!-- module: xhtml-image-1.mod --> +<!ENTITY % img.qname "%XHTML.pfx;img" > + +<!-- module: xhtml-inlphras-1.mod --> +<!ENTITY % abbr.qname "%XHTML.pfx;abbr" > +<!ENTITY % acronym.qname "%XHTML.pfx;acronym" > +<!ENTITY % cite.qname "%XHTML.pfx;cite" > +<!ENTITY % code.qname "%XHTML.pfx;code" > +<!ENTITY % dfn.qname "%XHTML.pfx;dfn" > +<!ENTITY % em.qname "%XHTML.pfx;em" > +<!ENTITY % kbd.qname "%XHTML.pfx;kbd" > +<!ENTITY % q.qname "%XHTML.pfx;q" > +<!ENTITY % samp.qname "%XHTML.pfx;samp" > +<!ENTITY % strong.qname "%XHTML.pfx;strong" > +<!ENTITY % var.qname "%XHTML.pfx;var" > + +<!-- module: xhtml-inlpres-1.mod --> +<!ENTITY % b.qname "%XHTML.pfx;b" > +<!ENTITY % big.qname "%XHTML.pfx;big" > +<!ENTITY % i.qname "%XHTML.pfx;i" > +<!ENTITY % small.qname "%XHTML.pfx;small" > +<!ENTITY % sub.qname "%XHTML.pfx;sub" > +<!ENTITY % sup.qname "%XHTML.pfx;sup" > +<!ENTITY % tt.qname "%XHTML.pfx;tt" > + +<!-- module: xhtml-inlstruct-1.mod --> +<!ENTITY % br.qname "%XHTML.pfx;br" > +<!ENTITY % span.qname "%XHTML.pfx;span" > + +<!-- module: xhtml-ismap-1.mod (also csismap, ssismap) --> +<!ENTITY % map.qname "%XHTML.pfx;map" > +<!ENTITY % area.qname "%XHTML.pfx;area" > + +<!-- module: xhtml-link-1.mod --> +<!ENTITY % link.qname "%XHTML.pfx;link" > + +<!-- module: xhtml-list-1.mod --> +<!ENTITY % dl.qname "%XHTML.pfx;dl" > +<!ENTITY % dt.qname "%XHTML.pfx;dt" > +<!ENTITY % dd.qname "%XHTML.pfx;dd" > +<!ENTITY % ol.qname "%XHTML.pfx;ol" > +<!ENTITY % ul.qname "%XHTML.pfx;ul" > +<!ENTITY % li.qname "%XHTML.pfx;li" > + +<!-- module: xhtml-meta-1.mod --> +<!ENTITY % meta.qname "%XHTML.pfx;meta" > + +<!-- module: xhtml-param-1.mod --> +<!ENTITY % param.qname "%XHTML.pfx;param" > + +<!-- module: xhtml-object-1.mod --> +<!ENTITY % object.qname "%XHTML.pfx;object" > + +<!-- module: xhtml-script-1.mod --> +<!ENTITY % script.qname "%XHTML.pfx;script" > +<!ENTITY % noscript.qname "%XHTML.pfx;noscript" > + +<!-- module: xhtml-struct-1.mod --> +<!ENTITY % html.qname "%XHTML.pfx;html" > +<!ENTITY % head.qname "%XHTML.pfx;head" > +<!ENTITY % title.qname "%XHTML.pfx;title" > +<!ENTITY % body.qname "%XHTML.pfx;body" > + +<!-- module: xhtml-style-1.mod --> +<!ENTITY % style.qname "%XHTML.pfx;style" > + +<!-- module: xhtml-table-1.mod --> +<!ENTITY % table.qname "%XHTML.pfx;table" > +<!ENTITY % caption.qname "%XHTML.pfx;caption" > +<!ENTITY % thead.qname "%XHTML.pfx;thead" > +<!ENTITY % tfoot.qname "%XHTML.pfx;tfoot" > +<!ENTITY % tbody.qname "%XHTML.pfx;tbody" > +<!ENTITY % colgroup.qname "%XHTML.pfx;colgroup" > +<!ENTITY % col.qname "%XHTML.pfx;col" > +<!ENTITY % tr.qname "%XHTML.pfx;tr" > +<!ENTITY % th.qname "%XHTML.pfx;th" > +<!ENTITY % td.qname "%XHTML.pfx;td" > + +<!-- module: xhtml-ruby-1.mod --> + +<!ENTITY % ruby.qname "%XHTML.pfx;ruby" > +<!ENTITY % rbc.qname "%XHTML.pfx;rbc" > +<!ENTITY % rtc.qname "%XHTML.pfx;rtc" > +<!ENTITY % rb.qname "%XHTML.pfx;rb" > +<!ENTITY % rt.qname "%XHTML.pfx;rt" > +<!ENTITY % rp.qname "%XHTML.pfx;rp" > + +<!-- Provisional XHTML 2.0 Qualified Names ...................... --> + +<!-- module: xhtml-image-2.mod --> +<!ENTITY % alt.qname "%XHTML.pfx;alt" > + +<!-- end of xhtml-qname-1.mod --> +]]> + +<!ENTITY % xhtml-events.module "IGNORE" > +<![%xhtml-events.module;[ +<!ENTITY % xhtml-events.mod + PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN" + "xhtml-events-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Intrinsic Events Module ....................................... --> +<!-- file: xhtml-events-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-events-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Intrinsic Event Attributes + + These are the event attributes defined in HTML 4, + Section 18.2.3 "Intrinsic Events". This module must be + instantiated prior to the Attributes Module but after + the Datatype Module in the Modular Framework module. + + "Note: Authors of HTML documents are advised that changes + are likely to occur in the realm of intrinsic events + (e.g., how scripts are bound to events). Research in + this realm is carried on by members of the W3C Document + Object Model Working Group (see the W3C Web site at + http://www.w3.org/ for more information)." +--> +<!-- NOTE: Because the ATTLIST declarations in this module occur + before their respective ELEMENT declarations in other + modules, there may be a dependency on this module that + should be considered if any of the parameter entities used + for element type names (eg., %a.qname;) are redeclared. +--> + +<!ENTITY % Events.attrib + "onclick %Script.datatype; #IMPLIED + ondblclick %Script.datatype; #IMPLIED + onmousedown %Script.datatype; #IMPLIED + onmouseup %Script.datatype; #IMPLIED + onmouseover %Script.datatype; #IMPLIED + onmousemove %Script.datatype; #IMPLIED + onmouseout %Script.datatype; #IMPLIED + onkeypress %Script.datatype; #IMPLIED + onkeydown %Script.datatype; #IMPLIED + onkeyup %Script.datatype; #IMPLIED" +> + +<!-- additional attributes on anchor element +--> +<!ATTLIST %a.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED +> + +<!-- additional attributes on form element +--> +<!ATTLIST %form.qname; + onsubmit %Script.datatype; #IMPLIED + onreset %Script.datatype; #IMPLIED +> + +<!-- additional attributes on label element +--> +<!ATTLIST %label.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED +> + +<!-- additional attributes on input element +--> +<!ATTLIST %input.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED + onselect %Script.datatype; #IMPLIED + onchange %Script.datatype; #IMPLIED +> + +<!-- additional attributes on select element +--> +<!ATTLIST %select.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED + onchange %Script.datatype; #IMPLIED +> + +<!-- additional attributes on textarea element +--> +<!ATTLIST %textarea.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED + onselect %Script.datatype; #IMPLIED + onchange %Script.datatype; #IMPLIED +> + +<!-- additional attributes on button element +--> +<!ATTLIST %button.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED +> + +<!-- additional attributes on body element +--> +<!ATTLIST %body.qname; + onload %Script.datatype; #IMPLIED + onunload %Script.datatype; #IMPLIED +> + +<!-- additional attributes on area element +--> +<!ATTLIST %area.qname; + onfocus %Script.datatype; #IMPLIED + onblur %Script.datatype; #IMPLIED +> + +<!-- end of xhtml-events-1.mod --> +]]> + +<!ENTITY % xhtml-attribs.module "INCLUDE" > +<![%xhtml-attribs.module;[ +<!ENTITY % xhtml-attribs.mod + PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN" + "xhtml-attribs-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Common Attributes Module ...................................... --> +<!-- file: xhtml-attribs-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-attribs-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Common Attributes + + This module declares many of the common attributes for the XHTML DTD. + %NS.decl.attrib; is declared in the XHTML Qname module. +--> + +<!ENTITY % id.attrib + "id ID #IMPLIED" +> + +<!ENTITY % class.attrib + "class NMTOKENS #IMPLIED" +> + +<!ENTITY % title.attrib + "title %Text.datatype; #IMPLIED" +> + +<!ENTITY % Core.extra.attrib "" > + +<!ENTITY % Core.attrib + "%XHTML.xmlns.attrib; + %id.attrib; + %class.attrib; + %title.attrib; + %Core.extra.attrib;" +> + +<!ENTITY % lang.attrib + "xml:lang %LanguageCode.datatype; #IMPLIED" +> + +<![%XHTML.bidi;[ +<!ENTITY % dir.attrib + "dir ( ltr | rtl ) #IMPLIED" +> + +<!ENTITY % I18n.attrib + "%dir.attrib; + %lang.attrib;" +> + +]]> +<!ENTITY % I18n.attrib + "%lang.attrib;" +> + +<!ENTITY % Common.extra.attrib "" > + +<!-- intrinsic event attributes declared previously +--> +<!ENTITY % Events.attrib "" > + +<!ENTITY % Common.attrib + "%Core.attrib; + %I18n.attrib; + %Events.attrib; + %Common.extra.attrib;" +> + +<!-- end of xhtml-attribs-1.mod --> +]]> + +<!-- placeholder for content model redeclarations --> +<!ENTITY % xhtml-model.redecl "" > + + +<!ENTITY % xhtml-model.module "INCLUDE" > +<![%xhtml-model.module;[ +<!-- instantiate the Document Model module declared in the DTD driver +--> +<!-- ....................................................................... --> +<!-- XHTML 1.1 Document Model Module ...................................... --> +<!-- file: xhtml11-model-1.mod + + This is XHTML 1.1, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml11/DTD/xhtml11-model-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- XHTML 1.1 Document Model + + This module describes the groupings of elements that make up + common content models for XHTML elements. + + XHTML has three basic content models: + + %Inline.mix; character-level elements + %Block.mix; block-like elements, eg., paragraphs and lists + %Flow.mix; any block or inline elements + + Any parameter entities declared in this module may be used + to create element content models, but the above three are + considered 'global' (insofar as that term applies here). + + The reserved word '#PCDATA' (indicating a text string) is now + included explicitly with each element declaration that is + declared as mixed content, as XML requires that this token + occur first in a content model specification. +--> +<!-- Extending the Model + + While in some cases this module may need to be rewritten to + accommodate changes to the document model, minor extensions + may be accomplished by redeclaring any of the three *.extra; + parameter entities to contain extension element types as follows: + + %Misc.extra; whose parent may be any block or + inline element. + + %Inline.extra; whose parent may be any inline element. + + %Block.extra; whose parent may be any block element. + + If used, these parameter entities must be an OR-separated + list beginning with an OR separator ("|"), eg., "| a | b | c" + + All block and inline *.class parameter entities not part + of the *struct.class classes begin with "| " to allow for + exclusion from mixes. +--> + +<!-- .............. Optional Elements in head .................. --> + +<!ENTITY % HeadOpts.mix + "( %script.qname; | %style.qname; | %meta.qname; + | %link.qname; | %object.qname; )*" +> + +<!-- ................. Miscellaneous Elements .................. --> + +<!-- ins and del are used to denote editing changes +--> +<!ENTITY % Edit.class "| %ins.qname; | %del.qname;" > + +<!-- script and noscript are used to contain scripts + and alternative content +--> +<!ENTITY % Script.class "| %script.qname; | %noscript.qname;" > + +<!ENTITY % Misc.extra "" > + +<!-- These elements are neither block nor inline, and can + essentially be used anywhere in the document body. +--> +<!ENTITY % Misc.class + "%Edit.class; + %Script.class; + %Misc.extra;" +> + +<!-- .................... Inline Elements ...................... --> + +<!ENTITY % InlStruct.class "%br.qname; | %span.qname;" > + +<!ENTITY % InlPhras.class + "| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname; + | %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname; + | %abbr.qname; | %acronym.qname; | %q.qname;" > + +<!ENTITY % InlPres.class + "| %tt.qname; | %i.qname; | %b.qname; | %big.qname; + | %small.qname; | %sub.qname; | %sup.qname;" > + +<!ENTITY % I18n.class "| %bdo.qname;" > + +<!ENTITY % Anchor.class "| %a.qname;" > + +<!ENTITY % InlSpecial.class + "| %img.qname; | %map.qname; + | %object.qname;" > + +<!ENTITY % InlForm.class + "| %input.qname; | %select.qname; | %textarea.qname; + | %label.qname; | %button.qname;" > + +<!ENTITY % Inline.extra "" > + +<!ENTITY % Ruby.class "| %ruby.qname;" > + +<!-- %Inline.class; includes all inline elements, + used as a component in mixes +--> +<!ENTITY % Inline.class + "%InlStruct.class; + %InlPhras.class; + %InlPres.class; + %I18n.class; + %Anchor.class; + %InlSpecial.class; + %InlForm.class; + %Ruby.class; + %Inline.extra;" +> + +<!-- %InlNoRuby.class; includes all inline elements + except ruby, used as a component in mixes +--> +<!ENTITY % InlNoRuby.class + "%InlStruct.class; + %InlPhras.class; + %InlPres.class; + %I18n.class; + %Anchor.class; + %InlSpecial.class; + %InlForm.class; + %Inline.extra;" +> + +<!-- %NoRuby.content; includes all inlines except ruby +--> +<!ENTITY % NoRuby.content + "( #PCDATA + | %InlNoRuby.class; + %Misc.class; )*" +> + +<!-- %InlNoAnchor.class; includes all non-anchor inlines, + used as a component in mixes +--> +<!ENTITY % InlNoAnchor.class + "%InlStruct.class; + %InlPhras.class; + %InlPres.class; + %I18n.class; + %InlSpecial.class; + %InlForm.class; + %Ruby.class; + %Inline.extra;" +> + +<!-- %InlNoAnchor.mix; includes all non-anchor inlines +--> +<!ENTITY % InlNoAnchor.mix + "%InlNoAnchor.class; + %Misc.class;" +> + +<!-- %Inline.mix; includes all inline elements, including %Misc.class; +--> +<!ENTITY % Inline.mix + "%Inline.class; + %Misc.class;" +> + +<!-- ..................... Block Elements ...................... --> + +<!-- In the HTML 4.0 DTD, heading and list elements were included + in the %block; parameter entity. The %Heading.class; and + %List.class; parameter entities must now be included explicitly + on element declarations where desired. +--> + +<!ENTITY % Heading.class + "%h1.qname; | %h2.qname; | %h3.qname; + | %h4.qname; | %h5.qname; | %h6.qname;" > + +<!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" > + +<!ENTITY % Table.class "| %table.qname;" > + +<!ENTITY % Form.class "| %form.qname;" > + +<!ENTITY % Fieldset.class "| %fieldset.qname;" > + +<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" > + +<!ENTITY % BlkPhras.class + "| %pre.qname; | %blockquote.qname; | %address.qname;" > + +<!ENTITY % BlkPres.class "| %hr.qname;" > + +<!ENTITY % BlkSpecial.class + "%Table.class; + %Form.class; + %Fieldset.class;" +> + +<!ENTITY % Block.extra "" > + +<!-- %Block.class; includes all block elements, + used as an component in mixes +--> +<!ENTITY % Block.class + "%BlkStruct.class; + %BlkPhras.class; + %BlkPres.class; + %BlkSpecial.class; + %Block.extra;" +> + +<!-- %Block.mix; includes all block elements plus %Misc.class; +--> +<!ENTITY % Block.mix + "%Heading.class; + | %List.class; + | %Block.class; + %Misc.class;" +> + +<!-- ................ All Content Elements .................. --> + +<!-- %Flow.mix; includes all text content, block and inline +--> +<!ENTITY % Flow.mix + "%Heading.class; + | %List.class; + | %Block.class; + | %Inline.class; + %Misc.class;" +> + +<!-- end of xhtml11-model-1.mod --> +]]> + +<!ENTITY % xhtml-charent.module "INCLUDE" > +<![%xhtml-charent.module;[ +<!ENTITY % xhtml-charent.mod + PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN" + "xhtml-charent-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Character Entities Module ......................................... --> +<!-- file: xhtml-charent-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-charent-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Character Entities for XHTML + + This module declares the set of character entities for XHTML, + including the Latin 1, Symbol and Special character collections. +--> + +<!ENTITY % xhtml-lat1 + PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" + "xhtml-lat1.ent" > +<!-- Portions (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. +--> +<!-- Character entity set. Typical invocation: + <!ENTITY % HTMLlat1 PUBLIC + "-//W3C//ENTITIES Latin 1 for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"> + %HTMLlat1; +--> + +<!ENTITY nbsp " "> <!-- no-break space = non-breaking space, + U+00A0 ISOnum --> +<!ENTITY iexcl "¡"> <!-- inverted exclamation mark, U+00A1 ISOnum --> +<!ENTITY cent "¢"> <!-- cent sign, U+00A2 ISOnum --> +<!ENTITY pound "£"> <!-- pound sign, U+00A3 ISOnum --> +<!ENTITY curren "¤"> <!-- currency sign, U+00A4 ISOnum --> +<!ENTITY yen "¥"> <!-- yen sign = yuan sign, U+00A5 ISOnum --> +<!ENTITY brvbar "¦"> <!-- broken bar = broken vertical bar, + U+00A6 ISOnum --> +<!ENTITY sect "§"> <!-- section sign, U+00A7 ISOnum --> +<!ENTITY uml "¨"> <!-- diaeresis = spacing diaeresis, + U+00A8 ISOdia --> +<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum --> +<!ENTITY ordf "ª"> <!-- feminine ordinal indicator, U+00AA ISOnum --> +<!ENTITY laquo "«"> <!-- left-pointing double angle quotation mark + = left pointing guillemet, U+00AB ISOnum --> +<!ENTITY not "¬"> <!-- not sign = discretionary hyphen, + U+00AC ISOnum --> +<!ENTITY shy "­"> <!-- soft hyphen = discretionary hyphen, + U+00AD ISOnum --> +<!ENTITY reg "®"> <!-- registered sign = registered trade mark sign, + U+00AE ISOnum --> +<!ENTITY macr "¯"> <!-- macron = spacing macron = overline + = APL overbar, U+00AF ISOdia --> +<!ENTITY deg "°"> <!-- degree sign, U+00B0 ISOnum --> +<!ENTITY plusmn "±"> <!-- plus-minus sign = plus-or-minus sign, + U+00B1 ISOnum --> +<!ENTITY sup2 "²"> <!-- superscript two = superscript digit two + = squared, U+00B2 ISOnum --> +<!ENTITY sup3 "³"> <!-- superscript three = superscript digit three + = cubed, U+00B3 ISOnum --> +<!ENTITY acute "´"> <!-- acute accent = spacing acute, + U+00B4 ISOdia --> +<!ENTITY micro "µ"> <!-- micro sign, U+00B5 ISOnum --> +<!ENTITY para "¶"> <!-- pilcrow sign = paragraph sign, + U+00B6 ISOnum --> +<!ENTITY middot "·"> <!-- middle dot = Georgian comma + = Greek middle dot, U+00B7 ISOnum --> +<!ENTITY cedil "¸"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia --> +<!ENTITY sup1 "¹"> <!-- superscript one = superscript digit one, + U+00B9 ISOnum --> +<!ENTITY ordm "º"> <!-- masculine ordinal indicator, + U+00BA ISOnum --> +<!ENTITY raquo "»"> <!-- right-pointing double angle quotation mark + = right pointing guillemet, U+00BB ISOnum --> +<!ENTITY frac14 "¼"> <!-- vulgar fraction one quarter + = fraction one quarter, U+00BC ISOnum --> +<!ENTITY frac12 "½"> <!-- vulgar fraction one half + = fraction one half, U+00BD ISOnum --> +<!ENTITY frac34 "¾"> <!-- vulgar fraction three quarters + = fraction three quarters, U+00BE ISOnum --> +<!ENTITY iquest "¿"> <!-- inverted question mark + = turned question mark, U+00BF ISOnum --> +<!ENTITY Agrave "À"> <!-- latin capital letter A with grave + = latin capital letter A grave, + U+00C0 ISOlat1 --> +<!ENTITY Aacute "Á"> <!-- latin capital letter A with acute, + U+00C1 ISOlat1 --> +<!ENTITY Acirc "Â"> <!-- latin capital letter A with circumflex, + U+00C2 ISOlat1 --> +<!ENTITY Atilde "Ã"> <!-- latin capital letter A with tilde, + U+00C3 ISOlat1 --> +<!ENTITY Auml "Ä"> <!-- latin capital letter A with diaeresis, + U+00C4 ISOlat1 --> +<!ENTITY Aring "Å"> <!-- latin capital letter A with ring above + = latin capital letter A ring, + U+00C5 ISOlat1 --> +<!ENTITY AElig "Æ"> <!-- latin capital letter AE + = latin capital ligature AE, + U+00C6 ISOlat1 --> +<!ENTITY Ccedil "Ç"> <!-- latin capital letter C with cedilla, + U+00C7 ISOlat1 --> +<!ENTITY Egrave "È"> <!-- latin capital letter E with grave, + U+00C8 ISOlat1 --> +<!ENTITY Eacute "É"> <!-- latin capital letter E with acute, + U+00C9 ISOlat1 --> +<!ENTITY Ecirc "Ê"> <!-- latin capital letter E with circumflex, + U+00CA ISOlat1 --> +<!ENTITY Euml "Ë"> <!-- latin capital letter E with diaeresis, + U+00CB ISOlat1 --> +<!ENTITY Igrave "Ì"> <!-- latin capital letter I with grave, + U+00CC ISOlat1 --> +<!ENTITY Iacute "Í"> <!-- latin capital letter I with acute, + U+00CD ISOlat1 --> +<!ENTITY Icirc "Î"> <!-- latin capital letter I with circumflex, + U+00CE ISOlat1 --> +<!ENTITY Iuml "Ï"> <!-- latin capital letter I with diaeresis, + U+00CF ISOlat1 --> +<!ENTITY ETH "Ð"> <!-- latin capital letter ETH, U+00D0 ISOlat1 --> +<!ENTITY Ntilde "Ñ"> <!-- latin capital letter N with tilde, + U+00D1 ISOlat1 --> +<!ENTITY Ograve "Ò"> <!-- latin capital letter O with grave, + U+00D2 ISOlat1 --> +<!ENTITY Oacute "Ó"> <!-- latin capital letter O with acute, + U+00D3 ISOlat1 --> +<!ENTITY Ocirc "Ô"> <!-- latin capital letter O with circumflex, + U+00D4 ISOlat1 --> +<!ENTITY Otilde "Õ"> <!-- latin capital letter O with tilde, + U+00D5 ISOlat1 --> +<!ENTITY Ouml "Ö"> <!-- latin capital letter O with diaeresis, + U+00D6 ISOlat1 --> +<!ENTITY times "×"> <!-- multiplication sign, U+00D7 ISOnum --> +<!ENTITY Oslash "Ø"> <!-- latin capital letter O with stroke + = latin capital letter O slash, + U+00D8 ISOlat1 --> +<!ENTITY Ugrave "Ù"> <!-- latin capital letter U with grave, + U+00D9 ISOlat1 --> +<!ENTITY Uacute "Ú"> <!-- latin capital letter U with acute, + U+00DA ISOlat1 --> +<!ENTITY Ucirc "Û"> <!-- latin capital letter U with circumflex, + U+00DB ISOlat1 --> +<!ENTITY Uuml "Ü"> <!-- latin capital letter U with diaeresis, + U+00DC ISOlat1 --> +<!ENTITY Yacute "Ý"> <!-- latin capital letter Y with acute, + U+00DD ISOlat1 --> +<!ENTITY THORN "Þ"> <!-- latin capital letter THORN, + U+00DE ISOlat1 --> +<!ENTITY szlig "ß"> <!-- latin small letter sharp s = ess-zed, + U+00DF ISOlat1 --> +<!ENTITY agrave "à"> <!-- latin small letter a with grave + = latin small letter a grave, + U+00E0 ISOlat1 --> +<!ENTITY aacute "á"> <!-- latin small letter a with acute, + U+00E1 ISOlat1 --> +<!ENTITY acirc "â"> <!-- latin small letter a with circumflex, + U+00E2 ISOlat1 --> +<!ENTITY atilde "ã"> <!-- latin small letter a with tilde, + U+00E3 ISOlat1 --> +<!ENTITY auml "ä"> <!-- latin small letter a with diaeresis, + U+00E4 ISOlat1 --> +<!ENTITY aring "å"> <!-- latin small letter a with ring above + = latin small letter a ring, + U+00E5 ISOlat1 --> +<!ENTITY aelig "æ"> <!-- latin small letter ae + = latin small ligature ae, U+00E6 ISOlat1 --> +<!ENTITY ccedil "ç"> <!-- latin small letter c with cedilla, + U+00E7 ISOlat1 --> +<!ENTITY egrave "è"> <!-- latin small letter e with grave, + U+00E8 ISOlat1 --> +<!ENTITY eacute "é"> <!-- latin small letter e with acute, + U+00E9 ISOlat1 --> +<!ENTITY ecirc "ê"> <!-- latin small letter e with circumflex, + U+00EA ISOlat1 --> +<!ENTITY euml "ë"> <!-- latin small letter e with diaeresis, + U+00EB ISOlat1 --> +<!ENTITY igrave "ì"> <!-- latin small letter i with grave, + U+00EC ISOlat1 --> +<!ENTITY iacute "í"> <!-- latin small letter i with acute, + U+00ED ISOlat1 --> +<!ENTITY icirc "î"> <!-- latin small letter i with circumflex, + U+00EE ISOlat1 --> +<!ENTITY iuml "ï"> <!-- latin small letter i with diaeresis, + U+00EF ISOlat1 --> +<!ENTITY eth "ð"> <!-- latin small letter eth, U+00F0 ISOlat1 --> +<!ENTITY ntilde "ñ"> <!-- latin small letter n with tilde, + U+00F1 ISOlat1 --> +<!ENTITY ograve "ò"> <!-- latin small letter o with grave, + U+00F2 ISOlat1 --> +<!ENTITY oacute "ó"> <!-- latin small letter o with acute, + U+00F3 ISOlat1 --> +<!ENTITY ocirc "ô"> <!-- latin small letter o with circumflex, + U+00F4 ISOlat1 --> +<!ENTITY otilde "õ"> <!-- latin small letter o with tilde, + U+00F5 ISOlat1 --> +<!ENTITY ouml "ö"> <!-- latin small letter o with diaeresis, + U+00F6 ISOlat1 --> +<!ENTITY divide "÷"> <!-- division sign, U+00F7 ISOnum --> +<!ENTITY oslash "ø"> <!-- latin small letter o with stroke, + = latin small letter o slash, + U+00F8 ISOlat1 --> +<!ENTITY ugrave "ù"> <!-- latin small letter u with grave, + U+00F9 ISOlat1 --> +<!ENTITY uacute "ú"> <!-- latin small letter u with acute, + U+00FA ISOlat1 --> +<!ENTITY ucirc "û"> <!-- latin small letter u with circumflex, + U+00FB ISOlat1 --> +<!ENTITY uuml "ü"> <!-- latin small letter u with diaeresis, + U+00FC ISOlat1 --> +<!ENTITY yacute "ý"> <!-- latin small letter y with acute, + U+00FD ISOlat1 --> +<!ENTITY thorn "þ"> <!-- latin small letter thorn with, + U+00FE ISOlat1 --> +<!ENTITY yuml "ÿ"> <!-- latin small letter y with diaeresis, + U+00FF ISOlat1 --> + + +<!ENTITY % xhtml-symbol + PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN" + "xhtml-symbol.ent" > +<!-- Mathematical, Greek and Symbolic characters for HTML --> + +<!-- Character entity set. Typical invocation: + <!ENTITY % HTMLsymbol PUBLIC + "-//W3C//ENTITIES Symbols for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"> + %HTMLsymbol; +--> + +<!-- Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. +--> + +<!-- Relevant ISO entity set is given unless names are newly introduced. + New names (i.e., not in ISO 8879 list) do not clash with any + existing ISO 8879 entity names. ISO 10646 character numbers + are given for each character, in hex. values are decimal + conversions of the ISO 10646 values and refer to the document + character set. Names are Unicode names. +--> + +<!-- Latin Extended-B --> +<!ENTITY fnof "ƒ"> <!-- latin small f with hook = function + = florin, U+0192 ISOtech --> + +<!-- Greek --> +<!ENTITY Alpha "Α"> <!-- greek capital letter alpha, U+0391 --> +<!ENTITY Beta "Β"> <!-- greek capital letter beta, U+0392 --> +<!ENTITY Gamma "Γ"> <!-- greek capital letter gamma, + U+0393 ISOgrk3 --> +<!ENTITY Delta "Δ"> <!-- greek capital letter delta, + U+0394 ISOgrk3 --> +<!ENTITY Epsilon "Ε"> <!-- greek capital letter epsilon, U+0395 --> +<!ENTITY Zeta "Ζ"> <!-- greek capital letter zeta, U+0396 --> +<!ENTITY Eta "Η"> <!-- greek capital letter eta, U+0397 --> +<!ENTITY Theta "Θ"> <!-- greek capital letter theta, + U+0398 ISOgrk3 --> +<!ENTITY Iota "Ι"> <!-- greek capital letter iota, U+0399 --> +<!ENTITY Kappa "Κ"> <!-- greek capital letter kappa, U+039A --> +<!ENTITY Lambda "Λ"> <!-- greek capital letter lambda, + U+039B ISOgrk3 --> +<!ENTITY Mu "Μ"> <!-- greek capital letter mu, U+039C --> +<!ENTITY Nu "Ν"> <!-- greek capital letter nu, U+039D --> +<!ENTITY Xi "Ξ"> <!-- greek capital letter xi, U+039E ISOgrk3 --> +<!ENTITY Omicron "Ο"> <!-- greek capital letter omicron, U+039F --> +<!ENTITY Pi "Π"> <!-- greek capital letter pi, U+03A0 ISOgrk3 --> +<!ENTITY Rho "Ρ"> <!-- greek capital letter rho, U+03A1 --> +<!-- there is no Sigmaf, and no U+03A2 character either --> +<!ENTITY Sigma "Σ"> <!-- greek capital letter sigma, + U+03A3 ISOgrk3 --> +<!ENTITY Tau "Τ"> <!-- greek capital letter tau, U+03A4 --> +<!ENTITY Upsilon "Υ"> <!-- greek capital letter upsilon, + U+03A5 ISOgrk3 --> +<!ENTITY Phi "Φ"> <!-- greek capital letter phi, + U+03A6 ISOgrk3 --> +<!ENTITY Chi "Χ"> <!-- greek capital letter chi, U+03A7 --> +<!ENTITY Psi "Ψ"> <!-- greek capital letter psi, + U+03A8 ISOgrk3 --> +<!ENTITY Omega "Ω"> <!-- greek capital letter omega, + U+03A9 ISOgrk3 --> + +<!ENTITY alpha "α"> <!-- greek small letter alpha, + U+03B1 ISOgrk3 --> +<!ENTITY beta "β"> <!-- greek small letter beta, U+03B2 ISOgrk3 --> +<!ENTITY gamma "γ"> <!-- greek small letter gamma, + U+03B3 ISOgrk3 --> +<!ENTITY delta "δ"> <!-- greek small letter delta, + U+03B4 ISOgrk3 --> +<!ENTITY epsilon "ε"> <!-- greek small letter epsilon, + U+03B5 ISOgrk3 --> +<!ENTITY zeta "ζ"> <!-- greek small letter zeta, U+03B6 ISOgrk3 --> +<!ENTITY eta "η"> <!-- greek small letter eta, U+03B7 ISOgrk3 --> +<!ENTITY theta "θ"> <!-- greek small letter theta, + U+03B8 ISOgrk3 --> +<!ENTITY iota "ι"> <!-- greek small letter iota, U+03B9 ISOgrk3 --> +<!ENTITY kappa "κ"> <!-- greek small letter kappa, + U+03BA ISOgrk3 --> +<!ENTITY lambda "λ"> <!-- greek small letter lambda, + U+03BB ISOgrk3 --> +<!ENTITY mu "μ"> <!-- greek small letter mu, U+03BC ISOgrk3 --> +<!ENTITY nu "ν"> <!-- greek small letter nu, U+03BD ISOgrk3 --> +<!ENTITY xi "ξ"> <!-- greek small letter xi, U+03BE ISOgrk3 --> +<!ENTITY omicron "ο"> <!-- greek small letter omicron, U+03BF NEW --> +<!ENTITY pi "π"> <!-- greek small letter pi, U+03C0 ISOgrk3 --> +<!ENTITY rho "ρ"> <!-- greek small letter rho, U+03C1 ISOgrk3 --> +<!ENTITY sigmaf "ς"> <!-- greek small letter final sigma, + U+03C2 ISOgrk3 --> +<!ENTITY sigma "σ"> <!-- greek small letter sigma, + U+03C3 ISOgrk3 --> +<!ENTITY tau "τ"> <!-- greek small letter tau, U+03C4 ISOgrk3 --> +<!ENTITY upsilon "υ"> <!-- greek small letter upsilon, + U+03C5 ISOgrk3 --> +<!ENTITY phi "φ"> <!-- greek small letter phi, U+03C6 ISOgrk3 --> +<!ENTITY chi "χ"> <!-- greek small letter chi, U+03C7 ISOgrk3 --> +<!ENTITY psi "ψ"> <!-- greek small letter psi, U+03C8 ISOgrk3 --> +<!ENTITY omega "ω"> <!-- greek small letter omega, + U+03C9 ISOgrk3 --> +<!ENTITY thetasym "ϑ"> <!-- greek small letter theta symbol, + U+03D1 NEW --> +<!ENTITY upsih "ϒ"> <!-- greek upsilon with hook symbol, + U+03D2 NEW --> +<!ENTITY piv "ϖ"> <!-- greek pi symbol, U+03D6 ISOgrk3 --> + +<!-- General Punctuation --> +<!ENTITY bull "•"> <!-- bullet = black small circle, + U+2022 ISOpub --> +<!-- bullet is NOT the same as bullet operator, U+2219 --> +<!ENTITY hellip "…"> <!-- horizontal ellipsis = three dot leader, + U+2026 ISOpub --> +<!ENTITY prime "′"> <!-- prime = minutes = feet, U+2032 ISOtech --> +<!ENTITY Prime "″"> <!-- double prime = seconds = inches, + U+2033 ISOtech --> +<!ENTITY oline "‾"> <!-- overline = spacing overscore, + U+203E NEW --> +<!ENTITY frasl "⁄"> <!-- fraction slash, U+2044 NEW --> + +<!-- Letterlike Symbols --> +<!ENTITY weierp "℘"> <!-- script capital P = power set + = Weierstrass p, U+2118 ISOamso --> +<!ENTITY image "ℑ"> <!-- blackletter capital I = imaginary part, + U+2111 ISOamso --> +<!ENTITY real "ℜ"> <!-- blackletter capital R = real part symbol, + U+211C ISOamso --> +<!ENTITY trade "™"> <!-- trade mark sign, U+2122 ISOnum --> +<!ENTITY alefsym "ℵ"> <!-- alef symbol = first transfinite cardinal, + U+2135 NEW --> +<!-- alef symbol is NOT the same as hebrew letter alef, + U+05D0 although the same glyph could be used to depict both characters --> + +<!-- Arrows --> +<!ENTITY larr "←"> <!-- leftwards arrow, U+2190 ISOnum --> +<!ENTITY uarr "↑"> <!-- upwards arrow, U+2191 ISOnum--> +<!ENTITY rarr "→"> <!-- rightwards arrow, U+2192 ISOnum --> +<!ENTITY darr "↓"> <!-- downwards arrow, U+2193 ISOnum --> +<!ENTITY harr "↔"> <!-- left right arrow, U+2194 ISOamsa --> +<!ENTITY crarr "↵"> <!-- downwards arrow with corner leftwards + = carriage return, U+21B5 NEW --> +<!ENTITY lArr "⇐"> <!-- leftwards double arrow, U+21D0 ISOtech --> +<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow + but also does not have any other character for that function. So ? lArr can + be used for 'is implied by' as ISOtech suggests --> +<!ENTITY uArr "⇑"> <!-- upwards double arrow, U+21D1 ISOamsa --> +<!ENTITY rArr "⇒"> <!-- rightwards double arrow, + U+21D2 ISOtech --> +<!-- Unicode does not say this is the 'implies' character but does not have + another character with this function so ? + rArr can be used for 'implies' as ISOtech suggests --> +<!ENTITY dArr "⇓"> <!-- downwards double arrow, U+21D3 ISOamsa --> +<!ENTITY hArr "⇔"> <!-- left right double arrow, + U+21D4 ISOamsa --> + +<!-- Mathematical Operators --> +<!ENTITY forall "∀"> <!-- for all, U+2200 ISOtech --> +<!ENTITY part "∂"> <!-- partial differential, U+2202 ISOtech --> +<!ENTITY exist "∃"> <!-- there exists, U+2203 ISOtech --> +<!ENTITY empty "∅"> <!-- empty set = null set = diameter, + U+2205 ISOamso --> +<!ENTITY nabla "∇"> <!-- nabla = backward difference, + U+2207 ISOtech --> +<!ENTITY isin "∈"> <!-- element of, U+2208 ISOtech --> +<!ENTITY notin "∉"> <!-- not an element of, U+2209 ISOtech --> +<!ENTITY ni "∋"> <!-- contains as member, U+220B ISOtech --> +<!-- should there be a more memorable name than 'ni'? --> +<!ENTITY prod "∏"> <!-- n-ary product = product sign, + U+220F ISOamsb --> +<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though + the same glyph might be used for both --> +<!ENTITY sum "∑"> <!-- n-ary sumation, U+2211 ISOamsb --> +<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma' + though the same glyph might be used for both --> +<!ENTITY minus "−"> <!-- minus sign, U+2212 ISOtech --> +<!ENTITY lowast "∗"> <!-- asterisk operator, U+2217 ISOtech --> +<!ENTITY radic "√"> <!-- square root = radical sign, + U+221A ISOtech --> +<!ENTITY prop "∝"> <!-- proportional to, U+221D ISOtech --> +<!ENTITY infin "∞"> <!-- infinity, U+221E ISOtech --> +<!ENTITY ang "∠"> <!-- angle, U+2220 ISOamso --> +<!ENTITY and "∧"> <!-- logical and = wedge, U+2227 ISOtech --> +<!ENTITY or "∨"> <!-- logical or = vee, U+2228 ISOtech --> +<!ENTITY cap "∩"> <!-- intersection = cap, U+2229 ISOtech --> +<!ENTITY cup "∪"> <!-- union = cup, U+222A ISOtech --> +<!ENTITY int "∫"> <!-- integral, U+222B ISOtech --> +<!ENTITY there4 "∴"> <!-- therefore, U+2234 ISOtech --> +<!ENTITY sim "∼"> <!-- tilde operator = varies with = similar to, + U+223C ISOtech --> +<!-- tilde operator is NOT the same character as the tilde, U+007E, + although the same glyph might be used to represent both --> +<!ENTITY cong "≅"> <!-- approximately equal to, U+2245 ISOtech --> +<!ENTITY asymp "≈"> <!-- almost equal to = asymptotic to, + U+2248 ISOamsr --> +<!ENTITY ne "≠"> <!-- not equal to, U+2260 ISOtech --> +<!ENTITY equiv "≡"> <!-- identical to, U+2261 ISOtech --> +<!ENTITY le "≤"> <!-- less-than or equal to, U+2264 ISOtech --> +<!ENTITY ge "≥"> <!-- greater-than or equal to, + U+2265 ISOtech --> +<!ENTITY sub "⊂"> <!-- subset of, U+2282 ISOtech --> +<!ENTITY sup "⊃"> <!-- superset of, U+2283 ISOtech --> +<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol + font encoding and is not included. Should it be, for symmetry? + It is in ISOamsn --> +<!ENTITY nsub "⊄"> <!-- not a subset of, U+2284 ISOamsn --> +<!ENTITY sube "⊆"> <!-- subset of or equal to, U+2286 ISOtech --> +<!ENTITY supe "⊇"> <!-- superset of or equal to, + U+2287 ISOtech --> +<!ENTITY oplus "⊕"> <!-- circled plus = direct sum, + U+2295 ISOamsb --> +<!ENTITY otimes "⊗"> <!-- circled times = vector product, + U+2297 ISOamsb --> +<!ENTITY perp "⊥"> <!-- up tack = orthogonal to = perpendicular, + U+22A5 ISOtech --> +<!ENTITY sdot "⋅"> <!-- dot operator, U+22C5 ISOamsb --> +<!-- dot operator is NOT the same character as U+00B7 middle dot --> + +<!-- Miscellaneous Technical --> +<!ENTITY lceil "⌈"> <!-- left ceiling = apl upstile, + U+2308 ISOamsc --> +<!ENTITY rceil "⌉"> <!-- right ceiling, U+2309 ISOamsc --> +<!ENTITY lfloor "⌊"> <!-- left floor = apl downstile, + U+230A ISOamsc --> +<!ENTITY rfloor "⌋"> <!-- right floor, U+230B ISOamsc --> +<!ENTITY lang "〈"> <!-- left-pointing angle bracket = bra, + U+2329 ISOtech --> +<!-- lang is NOT the same character as U+003C 'less than' + or U+2039 'single left-pointing angle quotation mark' --> +<!ENTITY rang "〉"> <!-- right-pointing angle bracket = ket, + U+232A ISOtech --> +<!-- rang is NOT the same character as U+003E 'greater than' + or U+203A 'single right-pointing angle quotation mark' --> + +<!-- Geometric Shapes --> +<!ENTITY loz "◊"> <!-- lozenge, U+25CA ISOpub --> + +<!-- Miscellaneous Symbols --> +<!ENTITY spades "♠"> <!-- black spade suit, U+2660 ISOpub --> +<!-- black here seems to mean filled as opposed to hollow --> +<!ENTITY clubs "♣"> <!-- black club suit = shamrock, + U+2663 ISOpub --> +<!ENTITY hearts "♥"> <!-- black heart suit = valentine, + U+2665 ISOpub --> +<!ENTITY diams "♦"> <!-- black diamond suit, U+2666 ISOpub --> + + +<!ENTITY % xhtml-special + PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" + "xhtml-special.ent" > +<!-- Special characters for HTML --> + +<!-- Character entity set. Typical invocation: + <!ENTITY % HTMLspecial PUBLIC + "-//W3C//ENTITIES Special for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"> + %HTMLspecial; +--> + +<!-- Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. +--> + +<!-- Relevant ISO entity set is given unless names are newly introduced. + New names (i.e., not in ISO 8879 list) do not clash with any + existing ISO 8879 entity names. ISO 10646 character numbers + are given for each character, in hex. values are decimal + conversions of the ISO 10646 values and refer to the document + character set. Names are Unicode names. +--> + +<!-- C0 Controls and Basic Latin --> +<!ENTITY quot """> <!-- quotation mark = APL quote, + U+0022 ISOnum --> +<!ENTITY amp "&#38;"> <!-- ampersand, U+0026 ISOnum --> +<!ENTITY lt "&#60;"> <!-- less-than sign, U+003C ISOnum --> +<!ENTITY gt ">"> <!-- greater-than sign, U+003E ISOnum --> +<!ENTITY apos "'"> <!-- apostrophe mark, U+0027 ISOnum --> + +<!-- Latin Extended-A --> +<!ENTITY OElig "Œ"> <!-- latin capital ligature OE, + U+0152 ISOlat2 --> +<!ENTITY oelig "œ"> <!-- latin small ligature oe, U+0153 ISOlat2 --> +<!-- ligature is a misnomer, this is a separate character in some languages --> +<!ENTITY Scaron "Š"> <!-- latin capital letter S with caron, + U+0160 ISOlat2 --> +<!ENTITY scaron "š"> <!-- latin small letter s with caron, + U+0161 ISOlat2 --> +<!ENTITY Yuml "Ÿ"> <!-- latin capital letter Y with diaeresis, + U+0178 ISOlat2 --> + +<!-- Spacing Modifier Letters --> +<!ENTITY circ "ˆ"> <!-- modifier letter circumflex accent, + U+02C6 ISOpub --> +<!ENTITY tilde "˜"> <!-- small tilde, U+02DC ISOdia --> + +<!-- General Punctuation --> +<!ENTITY ensp " "> <!-- en space, U+2002 ISOpub --> +<!ENTITY emsp " "> <!-- em space, U+2003 ISOpub --> +<!ENTITY thinsp " "> <!-- thin space, U+2009 ISOpub --> +<!ENTITY zwnj "‌"> <!-- zero width non-joiner, + U+200C NEW RFC 2070 --> +<!ENTITY zwj "‍"> <!-- zero width joiner, U+200D NEW RFC 2070 --> +<!ENTITY lrm "‎"> <!-- left-to-right mark, U+200E NEW RFC 2070 --> +<!ENTITY rlm "‏"> <!-- right-to-left mark, U+200F NEW RFC 2070 --> +<!ENTITY ndash "–"> <!-- en dash, U+2013 ISOpub --> +<!ENTITY mdash "—"> <!-- em dash, U+2014 ISOpub --> +<!ENTITY lsquo "‘"> <!-- left single quotation mark, + U+2018 ISOnum --> +<!ENTITY rsquo "’"> <!-- right single quotation mark, + U+2019 ISOnum --> +<!ENTITY sbquo "‚"> <!-- single low-9 quotation mark, U+201A NEW --> +<!ENTITY ldquo "“"> <!-- left double quotation mark, + U+201C ISOnum --> +<!ENTITY rdquo "”"> <!-- right double quotation mark, + U+201D ISOnum --> +<!ENTITY bdquo "„"> <!-- double low-9 quotation mark, U+201E NEW --> +<!ENTITY dagger "†"> <!-- dagger, U+2020 ISOpub --> +<!ENTITY Dagger "‡"> <!-- double dagger, U+2021 ISOpub --> +<!ENTITY permil "‰"> <!-- per mille sign, U+2030 ISOtech --> +<!ENTITY lsaquo "‹"> <!-- single left-pointing angle quotation mark, + U+2039 ISO proposed --> +<!-- lsaquo is proposed but not yet ISO standardized --> +<!ENTITY rsaquo "›"> <!-- single right-pointing angle quotation mark, + U+203A ISO proposed --> +<!-- rsaquo is proposed but not yet ISO standardized --> +<!ENTITY euro "€"> <!-- euro sign, U+20AC NEW --> + + +<!-- end of xhtml-charent-1.mod --> +]]> + +<!-- end of xhtml-framework-1.mod --> +]]> + +<!-- Post-Framework Redeclaration placeholder ................... --> +<!-- this serves as a location to insert markup declarations + into the DTD following the framework declarations. +--> +<!ENTITY % xhtml-postfw-redecl.module "IGNORE" > +<![%xhtml-postfw-redecl.module;[ +%xhtml-postfw-redecl.mod; +<!-- end of xhtml-postfw-redecl.module -->]]> + +<!-- Text Module (Required) ..................................... --> +<!ENTITY % xhtml-text.module "INCLUDE" > +<![%xhtml-text.module;[ +<!ENTITY % xhtml-text.mod + PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-text-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Text Module ................................................... --> +<!-- file: xhtml-text-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-text-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Textual Content + + The Text module includes declarations for all core + text container elements and their attributes. +--> + +<!ENTITY % xhtml-inlstruct.module "INCLUDE" > +<![%xhtml-inlstruct.module;[ +<!ENTITY % xhtml-inlstruct.mod + PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN" + "xhtml-inlstruct-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Inline Structural Module ...................................... --> +<!-- file: xhtml-inlstruct-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstruct-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Inline Structural + + br, span + + This module declares the elements and their attributes + used to support inline-level structural markup. +--> + +<!-- br: forced line break ............................. --> + +<!ENTITY % br.element "INCLUDE" > +<![%br.element;[ + +<!ENTITY % br.content "EMPTY" > +<!ENTITY % br.qname "br" > +<!ELEMENT %br.qname; %br.content; > + +<!-- end of br.element -->]]> + +<!ENTITY % br.attlist "INCLUDE" > +<![%br.attlist;[ +<!ATTLIST %br.qname; + %Core.attrib; +> +<!-- end of br.attlist -->]]> + +<!-- span: generic inline container .................... --> + +<!ENTITY % span.element "INCLUDE" > +<![%span.element;[ +<!ENTITY % span.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % span.qname "span" > +<!ELEMENT %span.qname; %span.content; > +<!-- end of span.element -->]]> + +<!ENTITY % span.attlist "INCLUDE" > +<![%span.attlist;[ +<!ATTLIST %span.qname; + %Common.attrib; +> +<!-- end of span.attlist -->]]> + +<!-- end of xhtml-inlstruct-1.mod --> +]]> + +<!ENTITY % xhtml-inlphras.module "INCLUDE" > +<![%xhtml-inlphras.module;[ +<!ENTITY % xhtml-inlphras.mod + PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN" + "xhtml-inlphras-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Inline Phrasal Module ......................................... --> +<!-- file: xhtml-inlphras-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlphras-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Inline Phrasal + + abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var + + This module declares the elements and their attributes used to + support inline-level phrasal markup. +--> + +<!ENTITY % abbr.element "INCLUDE" > +<![%abbr.element;[ +<!ENTITY % abbr.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % abbr.qname "abbr" > +<!ELEMENT %abbr.qname; %abbr.content; > +<!-- end of abbr.element -->]]> + +<!ENTITY % abbr.attlist "INCLUDE" > +<![%abbr.attlist;[ +<!ATTLIST %abbr.qname; + %Common.attrib; +> +<!-- end of abbr.attlist -->]]> + +<!ENTITY % acronym.element "INCLUDE" > +<![%acronym.element;[ +<!ENTITY % acronym.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % acronym.qname "acronym" > +<!ELEMENT %acronym.qname; %acronym.content; > +<!-- end of acronym.element -->]]> + +<!ENTITY % acronym.attlist "INCLUDE" > +<![%acronym.attlist;[ +<!ATTLIST %acronym.qname; + %Common.attrib; +> +<!-- end of acronym.attlist -->]]> + +<!ENTITY % cite.element "INCLUDE" > +<![%cite.element;[ +<!ENTITY % cite.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % cite.qname "cite" > +<!ELEMENT %cite.qname; %cite.content; > +<!-- end of cite.element -->]]> + +<!ENTITY % cite.attlist "INCLUDE" > +<![%cite.attlist;[ +<!ATTLIST %cite.qname; + %Common.attrib; +> +<!-- end of cite.attlist -->]]> + +<!ENTITY % code.element "INCLUDE" > +<![%code.element;[ +<!ENTITY % code.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % code.qname "code" > +<!ELEMENT %code.qname; %code.content; > +<!-- end of code.element -->]]> + +<!ENTITY % code.attlist "INCLUDE" > +<![%code.attlist;[ +<!ATTLIST %code.qname; + %Common.attrib; +> +<!-- end of code.attlist -->]]> + +<!ENTITY % dfn.element "INCLUDE" > +<![%dfn.element;[ +<!ENTITY % dfn.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % dfn.qname "dfn" > +<!ELEMENT %dfn.qname; %dfn.content; > +<!-- end of dfn.element -->]]> + +<!ENTITY % dfn.attlist "INCLUDE" > +<![%dfn.attlist;[ +<!ATTLIST %dfn.qname; + %Common.attrib; +> +<!-- end of dfn.attlist -->]]> + +<!ENTITY % em.element "INCLUDE" > +<![%em.element;[ +<!ENTITY % em.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % em.qname "em" > +<!ELEMENT %em.qname; %em.content; > +<!-- end of em.element -->]]> + +<!ENTITY % em.attlist "INCLUDE" > +<![%em.attlist;[ +<!ATTLIST %em.qname; + %Common.attrib; +> +<!-- end of em.attlist -->]]> + +<!ENTITY % kbd.element "INCLUDE" > +<![%kbd.element;[ +<!ENTITY % kbd.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % kbd.qname "kbd" > +<!ELEMENT %kbd.qname; %kbd.content; > +<!-- end of kbd.element -->]]> + +<!ENTITY % kbd.attlist "INCLUDE" > +<![%kbd.attlist;[ +<!ATTLIST %kbd.qname; + %Common.attrib; +> +<!-- end of kbd.attlist -->]]> + +<!ENTITY % q.element "INCLUDE" > +<![%q.element;[ +<!ENTITY % q.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % q.qname "q" > +<!ELEMENT %q.qname; %q.content; > +<!-- end of q.element -->]]> + +<!ENTITY % q.attlist "INCLUDE" > +<![%q.attlist;[ +<!ATTLIST %q.qname; + %Common.attrib; + cite %URI.datatype; #IMPLIED +> +<!-- end of q.attlist -->]]> + +<!ENTITY % samp.element "INCLUDE" > +<![%samp.element;[ +<!ENTITY % samp.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % samp.qname "samp" > +<!ELEMENT %samp.qname; %samp.content; > +<!-- end of samp.element -->]]> + +<!ENTITY % samp.attlist "INCLUDE" > +<![%samp.attlist;[ +<!ATTLIST %samp.qname; + %Common.attrib; +> +<!-- end of samp.attlist -->]]> + +<!ENTITY % strong.element "INCLUDE" > +<![%strong.element;[ +<!ENTITY % strong.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % strong.qname "strong" > +<!ELEMENT %strong.qname; %strong.content; > +<!-- end of strong.element -->]]> + +<!ENTITY % strong.attlist "INCLUDE" > +<![%strong.attlist;[ +<!ATTLIST %strong.qname; + %Common.attrib; +> +<!-- end of strong.attlist -->]]> + +<!ENTITY % var.element "INCLUDE" > +<![%var.element;[ +<!ENTITY % var.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % var.qname "var" > +<!ELEMENT %var.qname; %var.content; > +<!-- end of var.element -->]]> + +<!ENTITY % var.attlist "INCLUDE" > +<![%var.attlist;[ +<!ATTLIST %var.qname; + %Common.attrib; +> +<!-- end of var.attlist -->]]> + +<!-- end of xhtml-inlphras-1.mod --> +]]> + +<!ENTITY % xhtml-blkstruct.module "INCLUDE" > +<![%xhtml-blkstruct.module;[ +<!ENTITY % xhtml-blkstruct.mod + PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN" + "xhtml-blkstruct-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Block Structural Module ....................................... --> +<!-- file: xhtml-blkstruct-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-blkstruct-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Block Structural + + div, p + + This module declares the elements and their attributes used to + support block-level structural markup. +--> + +<!ENTITY % div.element "INCLUDE" > +<![%div.element;[ +<!ENTITY % div.content + "( #PCDATA | %Flow.mix; )*" +> +<!ENTITY % div.qname "div" > +<!ELEMENT %div.qname; %div.content; > +<!-- end of div.element -->]]> + +<!ENTITY % div.attlist "INCLUDE" > +<![%div.attlist;[ +<!ATTLIST %div.qname; + %Common.attrib; +> +<!-- end of div.attlist -->]]> + +<!ENTITY % p.element "INCLUDE" > +<![%p.element;[ +<!ENTITY % p.content + "( #PCDATA | %Inline.mix; )*" > +<!ENTITY % p.qname "p" > +<!ELEMENT %p.qname; %p.content; > +<!-- end of p.element -->]]> + +<!ENTITY % p.attlist "INCLUDE" > +<![%p.attlist;[ +<!ATTLIST %p.qname; + %Common.attrib; +> +<!-- end of p.attlist -->]]> + +<!-- end of xhtml-blkstruct-1.mod --> +]]> + +<!ENTITY % xhtml-blkphras.module "INCLUDE" > +<![%xhtml-blkphras.module;[ +<!ENTITY % xhtml-blkphras.mod + PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN" + "xhtml-blkphras-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Block Phrasal Module .......................................... --> +<!-- file: xhtml-blkphras-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-blkphras-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Block Phrasal + + address, blockquote, pre, h1, h2, h3, h4, h5, h6 + + This module declares the elements and their attributes used to + support block-level phrasal markup. +--> + +<!ENTITY % address.element "INCLUDE" > +<![%address.element;[ +<!ENTITY % address.content + "( #PCDATA | %Inline.mix; )*" > +<!ENTITY % address.qname "address" > +<!ELEMENT %address.qname; %address.content; > +<!-- end of address.element -->]]> + +<!ENTITY % address.attlist "INCLUDE" > +<![%address.attlist;[ +<!ATTLIST %address.qname; + %Common.attrib; +> +<!-- end of address.attlist -->]]> + +<!ENTITY % blockquote.element "INCLUDE" > +<![%blockquote.element;[ +<!ENTITY % blockquote.content + "( %Block.mix; )+" +> +<!ENTITY % blockquote.qname "blockquote" > +<!ELEMENT %blockquote.qname; %blockquote.content; > +<!-- end of blockquote.element -->]]> + +<!ENTITY % blockquote.attlist "INCLUDE" > +<![%blockquote.attlist;[ +<!ATTLIST %blockquote.qname; + %Common.attrib; + cite %URI.datatype; #IMPLIED +> +<!-- end of blockquote.attlist -->]]> + +<!ENTITY % pre.element "INCLUDE" > +<![%pre.element;[ +<!ENTITY % pre.content + "( #PCDATA + | %InlStruct.class; + %InlPhras.class; + | %tt.qname; | %i.qname; | %b.qname; + %I18n.class; + %Anchor.class; + | %script.qname; | %map.qname; + %Inline.extra; )*" +> +<!ENTITY % pre.qname "pre" > +<!ELEMENT %pre.qname; %pre.content; > +<!-- end of pre.element -->]]> + +<!ENTITY % pre.attlist "INCLUDE" > +<![%pre.attlist;[ +<!ATTLIST %pre.qname; + %Common.attrib; + xml:space ( preserve ) #FIXED 'preserve' +> +<!-- end of pre.attlist -->]]> + +<!-- ................... Heading Elements ................... --> + +<!ENTITY % Heading.content "( #PCDATA | %Inline.mix; )*" > + +<!ENTITY % h1.element "INCLUDE" > +<![%h1.element;[ +<!ENTITY % h1.qname "h1" > +<!ELEMENT %h1.qname; %Heading.content; > +<!-- end of h1.element -->]]> + +<!ENTITY % h1.attlist "INCLUDE" > +<![%h1.attlist;[ +<!ATTLIST %h1.qname; + %Common.attrib; +> +<!-- end of h1.attlist -->]]> + +<!ENTITY % h2.element "INCLUDE" > +<![%h2.element;[ +<!ENTITY % h2.qname "h2" > +<!ELEMENT %h2.qname; %Heading.content; > +<!-- end of h2.element -->]]> + +<!ENTITY % h2.attlist "INCLUDE" > +<![%h2.attlist;[ +<!ATTLIST %h2.qname; + %Common.attrib; +> +<!-- end of h2.attlist -->]]> + +<!ENTITY % h3.element "INCLUDE" > +<![%h3.element;[ +<!ENTITY % h3.qname "h3" > +<!ELEMENT %h3.qname; %Heading.content; > +<!-- end of h3.element -->]]> + +<!ENTITY % h3.attlist "INCLUDE" > +<![%h3.attlist;[ +<!ATTLIST %h3.qname; + %Common.attrib; +> +<!-- end of h3.attlist -->]]> + +<!ENTITY % h4.element "INCLUDE" > +<![%h4.element;[ +<!ENTITY % h4.qname "h4" > +<!ELEMENT %h4.qname; %Heading.content; > +<!-- end of h4.element -->]]> + +<!ENTITY % h4.attlist "INCLUDE" > +<![%h4.attlist;[ +<!ATTLIST %h4.qname; + %Common.attrib; +> +<!-- end of h4.attlist -->]]> + +<!ENTITY % h5.element "INCLUDE" > +<![%h5.element;[ +<!ENTITY % h5.qname "h5" > +<!ELEMENT %h5.qname; %Heading.content; > +<!-- end of h5.element -->]]> + +<!ENTITY % h5.attlist "INCLUDE" > +<![%h5.attlist;[ +<!ATTLIST %h5.qname; + %Common.attrib; +> +<!-- end of h5.attlist -->]]> + +<!ENTITY % h6.element "INCLUDE" > +<![%h6.element;[ +<!ENTITY % h6.qname "h6" > +<!ELEMENT %h6.qname; %Heading.content; > +<!-- end of h6.element -->]]> + +<!ENTITY % h6.attlist "INCLUDE" > +<![%h6.attlist;[ +<!ATTLIST %h6.qname; + %Common.attrib; +> +<!-- end of h6.attlist -->]]> + +<!-- end of xhtml-blkphras-1.mod --> +]]> + +<!-- end of xhtml-text-1.mod --> +]]> + +<!-- Hypertext Module (required) ................................. --> +<!ENTITY % xhtml-hypertext.module "INCLUDE" > +<![%xhtml-hypertext.module;[ +<!ENTITY % xhtml-hypertext.mod + PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Hypertext Module .............................................. --> +<!-- file: xhtml-hypertext-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Hypertext + + a + + This module declares the anchor ('a') element type, which + defines the source of a hypertext link. The destination + (or link 'target') is identified via its 'id' attribute + rather than the 'name' attribute as was used in HTML. +--> + +<!-- ............ Anchor Element ............ --> + +<!ENTITY % a.element "INCLUDE" > +<![%a.element;[ +<!ENTITY % a.content + "( #PCDATA | %InlNoAnchor.mix; )*" +> +<!ENTITY % a.qname "a" > +<!ELEMENT %a.qname; %a.content; > +<!-- end of a.element -->]]> + +<!ENTITY % a.attlist "INCLUDE" > +<![%a.attlist;[ +<!ATTLIST %a.qname; + %Common.attrib; + href %URI.datatype; #IMPLIED + charset %Charset.datatype; #IMPLIED + type %ContentType.datatype; #IMPLIED + hreflang %LanguageCode.datatype; #IMPLIED + rel %LinkTypes.datatype; #IMPLIED + rev %LinkTypes.datatype; #IMPLIED + accesskey %Character.datatype; #IMPLIED + tabindex %Number.datatype; #IMPLIED +> +<!-- end of a.attlist -->]]> + +<!-- end of xhtml-hypertext-1.mod --> +]]> + +<!-- Lists Module (required) .................................... --> +<!ENTITY % xhtml-list.module "INCLUDE" > +<![%xhtml-list.module;[ +<!ENTITY % xhtml-list.mod + PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-list-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Lists Module .................................................. --> +<!-- file: xhtml-list-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-list-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Lists + + dl, dt, dd, ol, ul, li + + This module declares the list-oriented element types + and their attributes. +--> + +<!ENTITY % dl.qname "dl" > +<!ENTITY % dt.qname "dt" > +<!ENTITY % dd.qname "dd" > +<!ENTITY % ol.qname "ol" > +<!ENTITY % ul.qname "ul" > +<!ENTITY % li.qname "li" > + +<!-- dl: Definition List ............................... --> + +<!ENTITY % dl.element "INCLUDE" > +<![%dl.element;[ +<!ENTITY % dl.content "( %dt.qname; | %dd.qname; )+" > +<!ELEMENT %dl.qname; %dl.content; > +<!-- end of dl.element -->]]> + +<!ENTITY % dl.attlist "INCLUDE" > +<![%dl.attlist;[ +<!ATTLIST %dl.qname; + %Common.attrib; +> +<!-- end of dl.attlist -->]]> + +<!-- dt: Definition Term ............................... --> + +<!ENTITY % dt.element "INCLUDE" > +<![%dt.element;[ +<!ENTITY % dt.content + "( #PCDATA | %Inline.mix; )*" +> +<!ELEMENT %dt.qname; %dt.content; > +<!-- end of dt.element -->]]> + +<!ENTITY % dt.attlist "INCLUDE" > +<![%dt.attlist;[ +<!ATTLIST %dt.qname; + %Common.attrib; +> +<!-- end of dt.attlist -->]]> + +<!-- dd: Definition Description ........................ --> + +<!ENTITY % dd.element "INCLUDE" > +<![%dd.element;[ +<!ENTITY % dd.content + "( #PCDATA | %Flow.mix; )*" +> +<!ELEMENT %dd.qname; %dd.content; > +<!-- end of dd.element -->]]> + +<!ENTITY % dd.attlist "INCLUDE" > +<![%dd.attlist;[ +<!ATTLIST %dd.qname; + %Common.attrib; +> +<!-- end of dd.attlist -->]]> + +<!-- ol: Ordered List (numbered styles) ................ --> + +<!ENTITY % ol.element "INCLUDE" > +<![%ol.element;[ +<!ENTITY % ol.content "( %li.qname; )+" > +<!ELEMENT %ol.qname; %ol.content; > +<!-- end of ol.element -->]]> + +<!ENTITY % ol.attlist "INCLUDE" > +<![%ol.attlist;[ +<!ATTLIST %ol.qname; + %Common.attrib; +> +<!-- end of ol.attlist -->]]> + +<!-- ul: Unordered List (bullet styles) ................ --> + +<!ENTITY % ul.element "INCLUDE" > +<![%ul.element;[ +<!ENTITY % ul.content "( %li.qname; )+" > +<!ELEMENT %ul.qname; %ul.content; > +<!-- end of ul.element -->]]> + +<!ENTITY % ul.attlist "INCLUDE" > +<![%ul.attlist;[ +<!ATTLIST %ul.qname; + %Common.attrib; +> +<!-- end of ul.attlist -->]]> + +<!-- li: List Item ..................................... --> + +<!ENTITY % li.element "INCLUDE" > +<![%li.element;[ +<!ENTITY % li.content + "( #PCDATA | %Flow.mix; )*" +> +<!ELEMENT %li.qname; %li.content; > +<!-- end of li.element -->]]> + +<!ENTITY % li.attlist "INCLUDE" > +<![%li.attlist;[ +<!ATTLIST %li.qname; + %Common.attrib; +> +<!-- end of li.attlist -->]]> + +<!-- end of xhtml-list-1.mod --> +]]> + +<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: --> + +<!-- Edit Module ................................................ --> +<!ENTITY % xhtml-edit.module "INCLUDE" > +<![%xhtml-edit.module;[ +<!ENTITY % xhtml-edit.mod + PUBLIC "-//W3C//ELEMENTS XHTML Editing Elements 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-edit-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Editing Elements Module ....................................... --> +<!-- file: xhtml-edit-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Editing Markup 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-edit-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Editing Elements + + ins, del + + This module declares element types and attributes used to indicate + inserted and deleted content while editing a document. +--> + +<!-- ins: Inserted Text ............................... --> + +<!ENTITY % ins.element "INCLUDE" > +<![%ins.element;[ +<!ENTITY % ins.content + "( #PCDATA | %Flow.mix; )*" +> +<!ENTITY % ins.qname "ins" > +<!ELEMENT %ins.qname; %ins.content; > +<!-- end of ins.element -->]]> + +<!ENTITY % ins.attlist "INCLUDE" > +<![%ins.attlist;[ +<!ATTLIST %ins.qname; + %Common.attrib; + cite %URI.datatype; #IMPLIED + datetime %Datetime.datatype; #IMPLIED +> +<!-- end of ins.attlist -->]]> + +<!-- del: Deleted Text ................................ --> + +<!ENTITY % del.element "INCLUDE" > +<![%del.element;[ +<!ENTITY % del.content + "( #PCDATA | %Flow.mix; )*" +> +<!ENTITY % del.qname "del" > +<!ELEMENT %del.qname; %del.content; > +<!-- end of del.element -->]]> + +<!ENTITY % del.attlist "INCLUDE" > +<![%del.attlist;[ +<!ATTLIST %del.qname; + %Common.attrib; + cite %URI.datatype; #IMPLIED + datetime %Datetime.datatype; #IMPLIED +> +<!-- end of del.attlist -->]]> + +<!-- end of xhtml-edit-1.mod --> +]]> + +<!-- BIDI Override Module ....................................... --> +<!ENTITY % xhtml-bdo.module "%XHTML.bidi;" > +<![%xhtml-bdo.module;[ +<!ENTITY % xhtml-bdo.mod + PUBLIC "-//W3C//ELEMENTS XHTML BIDI Override Element 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-bdo-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML BDO Element Module ............................................. --> +<!-- file: xhtml-bdo-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML BDO Element 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-bdo-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Bidirectional Override (bdo) Element + + This modules declares the element 'bdo', used to override the + Unicode bidirectional algorithm for selected fragments of text. + + DEPENDENCIES: + Relies on the conditional section keyword %XHTML.bidi; declared + as "INCLUDE". Bidirectional text support includes both the bdo + element and the 'dir' attribute. +--> + +<!ENTITY % bdo.element "INCLUDE" > +<![%bdo.element;[ +<!ENTITY % bdo.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % bdo.qname "bdo" > +<!ELEMENT %bdo.qname; %bdo.content; > +<!-- end of bdo.element -->]]> + +<!ENTITY % bdo.attlist "INCLUDE" > +<![%bdo.attlist;[ +<!ATTLIST %bdo.qname; + %Core.attrib; + xml:lang %LanguageCode.datatype; #IMPLIED + dir ( ltr | rtl ) #REQUIRED +> +]]> + +<!-- end of xhtml-bdo-1.mod --> +]]> + +<!-- Ruby Module ................................................ --> +<!ENTITY % Ruby.common.attlists "INCLUDE" > +<!ENTITY % Ruby.common.attrib "%Common.attrib;" > +<!ENTITY % xhtml-ruby.module "INCLUDE" > +<![%xhtml-ruby.module;[ +<!ENTITY % xhtml-ruby.mod + PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN" + "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Ruby Module .................................................... --> +<!-- file: xhtml-ruby-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1999-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This module is based on the W3C Ruby Annotation Specification: + + http://www.w3.org/TR/ruby + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN" + SYSTEM "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod" + + ...................................................................... --> + +<!-- Ruby Elements + + ruby, rbc, rtc, rb, rt, rp + + This module declares the elements and their attributes used to + support ruby annotation markup. +--> + +<!-- declare qualified element type names: +--> +<!ENTITY % ruby.qname "ruby" > +<!ENTITY % rbc.qname "rbc" > +<!ENTITY % rtc.qname "rtc" > +<!ENTITY % rb.qname "rb" > +<!ENTITY % rt.qname "rt" > +<!ENTITY % rp.qname "rp" > + +<!-- rp fallback is included by default. +--> +<!ENTITY % Ruby.fallback "INCLUDE" > +<!ENTITY % Ruby.fallback.mandatory "IGNORE" > + +<!-- Complex ruby is included by default; it may be + overridden by other modules to ignore it. +--> +<!ENTITY % Ruby.complex "INCLUDE" > + +<!-- Fragments for the content model of the ruby element --> +<![%Ruby.fallback;[ +<![%Ruby.fallback.mandatory;[ +<!ENTITY % Ruby.content.simple + "( %rb.qname;, %rp.qname;, %rt.qname;, %rp.qname; )" +> +]]> +<!ENTITY % Ruby.content.simple + "( %rb.qname;, ( %rt.qname; | ( %rp.qname;, %rt.qname;, %rp.qname; ) ) )" +> +]]> +<!ENTITY % Ruby.content.simple "( %rb.qname;, %rt.qname; )" > + +<![%Ruby.complex;[ +<!ENTITY % Ruby.content.complex + "| ( %rbc.qname;, %rtc.qname;, %rtc.qname;? )" +> +]]> +<!ENTITY % Ruby.content.complex "" > + +<!-- Content models of the rb and the rt elements are intended to + allow other inline-level elements of its parent markup language, + but it should not include ruby descendent elements. The following + parameter entity %NoRuby.content; can be used to redefine + those content models with minimum effort. It's defined as + '( #PCDATA )' by default. +--> +<!ENTITY % NoRuby.content "( #PCDATA )" > + +<!-- one or more digits (NUMBER) --> +<!ENTITY % Number.datatype "CDATA" > + +<!-- ruby element ...................................... --> + +<!ENTITY % ruby.element "INCLUDE" > +<![%ruby.element;[ +<!ENTITY % ruby.content + "( %Ruby.content.simple; %Ruby.content.complex; )" +> +<!ELEMENT %ruby.qname; %ruby.content; > +<!-- end of ruby.element -->]]> + +<![%Ruby.complex;[ +<!-- rbc (ruby base component) element ................. --> + +<!ENTITY % rbc.element "INCLUDE" > +<![%rbc.element;[ +<!ENTITY % rbc.content + "(%rb.qname;)+" +> +<!ELEMENT %rbc.qname; %rbc.content; > +<!-- end of rbc.element -->]]> + +<!-- rtc (ruby text component) element ................. --> + +<!ENTITY % rtc.element "INCLUDE" > +<![%rtc.element;[ +<!ENTITY % rtc.content + "(%rt.qname;)+" +> +<!ELEMENT %rtc.qname; %rtc.content; > +<!-- end of rtc.element -->]]> +]]> + +<!-- rb (ruby base) element ............................ --> + +<!ENTITY % rb.element "INCLUDE" > +<![%rb.element;[ +<!-- %rb.content; uses %NoRuby.content; as its content model, + which is '( #PCDATA )' by default. It may be overridden + by other modules to allow other inline-level elements + of its parent markup language, but it should not include + ruby descendent elements. +--> +<!ENTITY % rb.content "%NoRuby.content;" > +<!ELEMENT %rb.qname; %rb.content; > +<!-- end of rb.element -->]]> + +<!-- rt (ruby text) element ............................ --> + +<!ENTITY % rt.element "INCLUDE" > +<![%rt.element;[ +<!-- %rt.content; uses %NoRuby.content; as its content model, + which is '( #PCDATA )' by default. It may be overridden + by other modules to allow other inline-level elements + of its parent markup language, but it should not include + ruby descendent elements. +--> +<!ENTITY % rt.content "%NoRuby.content;" > + +<!ELEMENT %rt.qname; %rt.content; > +<!-- end of rt.element -->]]> + +<!-- rbspan attribute is used for complex ruby only ...... --> +<![%Ruby.complex;[ +<!ENTITY % rt.attlist "INCLUDE" > +<![%rt.attlist;[ +<!ATTLIST %rt.qname; + rbspan %Number.datatype; "1" +> +<!-- end of rt.attlist -->]]> +]]> + +<!-- rp (ruby parenthesis) element ..................... --> + +<![%Ruby.fallback;[ +<!ENTITY % rp.element "INCLUDE" > +<![%rp.element;[ +<!ENTITY % rp.content + "( #PCDATA )" +> +<!ELEMENT %rp.qname; %rp.content; > +<!-- end of rp.element -->]]> +]]> + +<!-- Ruby Common Attributes + + The following optional ATTLIST declarations provide an easy way + to define common attributes for ruby elements. These declarations + are ignored by default. + + Ruby elements are intended to have common attributes of its + parent markup language. For example, if a markup language defines + common attributes as a parameter entity %attrs;, you may add + those attributes by just declaring the following parameter entities + + <!ENTITY % Ruby.common.attlists "INCLUDE" > + <!ENTITY % Ruby.common.attrib "%attrs;" > + + before including the Ruby module. +--> + +<!ENTITY % Ruby.common.attlists "IGNORE" > +<![%Ruby.common.attlists;[ +<!ENTITY % Ruby.common.attrib "" > + +<!-- common attributes for ruby ........................ --> + +<!ENTITY % Ruby.common.attlist "INCLUDE" > +<![%Ruby.common.attlist;[ +<!ATTLIST %ruby.qname; + %Ruby.common.attrib; +> +<!-- end of Ruby.common.attlist -->]]> + +<![%Ruby.complex;[ +<!-- common attributes for rbc ......................... --> + +<!ENTITY % Rbc.common.attlist "INCLUDE" > +<![%Rbc.common.attlist;[ +<!ATTLIST %rbc.qname; + %Ruby.common.attrib; +> +<!-- end of Rbc.common.attlist -->]]> + +<!-- common attributes for rtc ......................... --> + +<!ENTITY % Rtc.common.attlist "INCLUDE" > +<![%Rtc.common.attlist;[ +<!ATTLIST %rtc.qname; + %Ruby.common.attrib; +> +<!-- end of Rtc.common.attlist -->]]> +]]> + +<!-- common attributes for rb .......................... --> + +<!ENTITY % Rb.common.attlist "INCLUDE" > +<![%Rb.common.attlist;[ +<!ATTLIST %rb.qname; + %Ruby.common.attrib; +> +<!-- end of Rb.common.attlist -->]]> + +<!-- common attributes for rt .......................... --> + +<!ENTITY % Rt.common.attlist "INCLUDE" > +<![%Rt.common.attlist;[ +<!ATTLIST %rt.qname; + %Ruby.common.attrib; +> +<!-- end of Rt.common.attlist -->]]> + +<![%Ruby.fallback;[ +<!-- common attributes for rp .......................... --> + +<!ENTITY % Rp.common.attlist "INCLUDE" > +<![%Rp.common.attlist;[ +<!ATTLIST %rp.qname; + %Ruby.common.attrib; +> +<!-- end of Rp.common.attlist -->]]> +]]> +]]> + +<!-- end of xhtml-ruby-1.mod --> +]]> + +<!-- Presentation Module ........................................ --> +<!ENTITY % xhtml-pres.module "INCLUDE" > +<![%xhtml-pres.module;[ +<!ENTITY % xhtml-pres.mod + PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-pres-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Presentation Module ............................................ --> +<!-- file: xhtml-pres-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-pres-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Presentational Elements + + This module defines elements and their attributes for + simple presentation-related markup. +--> + +<!ENTITY % xhtml-inlpres.module "INCLUDE" > +<![%xhtml-inlpres.module;[ +<!ENTITY % xhtml-inlpres.mod + PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN" + "xhtml-inlpres-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Inline Presentation Module .................................... --> +<!-- file: xhtml-inlpres-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlpres-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Inline Presentational Elements + + b, big, i, small, sub, sup, tt + + This module declares the elements and their attributes used to + support inline-level presentational markup. +--> + +<!ENTITY % b.element "INCLUDE" > +<![%b.element;[ +<!ENTITY % b.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % b.qname "b" > +<!ELEMENT %b.qname; %b.content; > +<!-- end of b.element -->]]> + +<!ENTITY % b.attlist "INCLUDE" > +<![%b.attlist;[ +<!ATTLIST %b.qname; + %Common.attrib; +> +<!-- end of b.attlist -->]]> + +<!ENTITY % big.element "INCLUDE" > +<![%big.element;[ +<!ENTITY % big.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % big.qname "big" > +<!ELEMENT %big.qname; %big.content; > +<!-- end of big.element -->]]> + +<!ENTITY % big.attlist "INCLUDE" > +<![%big.attlist;[ +<!ATTLIST %big.qname; + %Common.attrib; +> +<!-- end of big.attlist -->]]> + +<!ENTITY % i.element "INCLUDE" > +<![%i.element;[ +<!ENTITY % i.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % i.qname "i" > +<!ELEMENT %i.qname; %i.content; > +<!-- end of i.element -->]]> + +<!ENTITY % i.attlist "INCLUDE" > +<![%i.attlist;[ +<!ATTLIST %i.qname; + %Common.attrib; +> +<!-- end of i.attlist -->]]> + +<!ENTITY % small.element "INCLUDE" > +<![%small.element;[ +<!ENTITY % small.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % small.qname "small" > +<!ELEMENT %small.qname; %small.content; > +<!-- end of small.element -->]]> + +<!ENTITY % small.attlist "INCLUDE" > +<![%small.attlist;[ +<!ATTLIST %small.qname; + %Common.attrib; +> +<!-- end of small.attlist -->]]> + +<!ENTITY % sub.element "INCLUDE" > +<![%sub.element;[ +<!ENTITY % sub.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % sub.qname "sub" > +<!ELEMENT %sub.qname; %sub.content; > +<!-- end of sub.element -->]]> + +<!ENTITY % sub.attlist "INCLUDE" > +<![%sub.attlist;[ +<!ATTLIST %sub.qname; + %Common.attrib; +> +<!-- end of sub.attlist -->]]> + +<!ENTITY % sup.element "INCLUDE" > +<![%sup.element;[ +<!ENTITY % sup.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % sup.qname "sup" > +<!ELEMENT %sup.qname; %sup.content; > +<!-- end of sup.element -->]]> + +<!ENTITY % sup.attlist "INCLUDE" > +<![%sup.attlist;[ +<!ATTLIST %sup.qname; + %Common.attrib; +> +<!-- end of sup.attlist -->]]> + +<!ENTITY % tt.element "INCLUDE" > +<![%tt.element;[ +<!ENTITY % tt.content + "( #PCDATA | %Inline.mix; )*" +> +<!ENTITY % tt.qname "tt" > +<!ELEMENT %tt.qname; %tt.content; > +<!-- end of tt.element -->]]> + +<!ENTITY % tt.attlist "INCLUDE" > +<![%tt.attlist;[ +<!ATTLIST %tt.qname; + %Common.attrib; +> +<!-- end of tt.attlist -->]]> + +<!-- end of xhtml-inlpres-1.mod --> +]]> + +<!ENTITY % xhtml-blkpres.module "INCLUDE" > +<![%xhtml-blkpres.module;[ +<!ENTITY % xhtml-blkpres.mod + PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN" + "xhtml-blkpres-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Block Presentation Module ..................................... --> +<!-- file: xhtml-blkpres-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-blkpres-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Block Presentational Elements + + hr + + This module declares the elements and their attributes used to + support block-level presentational markup. +--> + +<!ENTITY % hr.element "INCLUDE" > +<![%hr.element;[ +<!ENTITY % hr.content "EMPTY" > +<!ENTITY % hr.qname "hr" > +<!ELEMENT %hr.qname; %hr.content; > +<!-- end of hr.element -->]]> + +<!ENTITY % hr.attlist "INCLUDE" > +<![%hr.attlist;[ +<!ATTLIST %hr.qname; + %Common.attrib; +> +<!-- end of hr.attlist -->]]> + +<!-- end of xhtml-blkpres-1.mod --> +]]> + +<!-- end of xhtml-pres-1.mod --> +]]> + +<!-- Link Element Module ........................................ --> +<!ENTITY % xhtml-link.module "INCLUDE" > +<![%xhtml-link.module;[ +<!ENTITY % xhtml-link.mod + PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-link-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Link Element Module ........................................... --> +<!-- file: xhtml-link-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-link-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Link element + + link + + This module declares the link element type and its attributes, + which could (in principle) be used to define document-level links + to external resources such as: + + a) for document specific toolbars/menus, e.g. start, contents, + previous, next, index, end, help + b) to link to a separate style sheet (rel="stylesheet") + c) to make a link to a script (rel="script") + d) by style sheets to control how collections of html nodes are + rendered into printed documents + e) to make a link to a printable version of this document + e.g. a postscript or pdf version (rel="alternate" media="print") +--> + +<!-- link: Media-Independent Link ...................... --> + +<!ENTITY % link.element "INCLUDE" > +<![%link.element;[ +<!ENTITY % link.content "EMPTY" > +<!ENTITY % link.qname "link" > +<!ELEMENT %link.qname; %link.content; > +<!-- end of link.element -->]]> + +<!ENTITY % link.attlist "INCLUDE" > +<![%link.attlist;[ +<!ATTLIST %link.qname; + %Common.attrib; + charset %Charset.datatype; #IMPLIED + href %URI.datatype; #IMPLIED + hreflang %LanguageCode.datatype; #IMPLIED + type %ContentType.datatype; #IMPLIED + rel %LinkTypes.datatype; #IMPLIED + rev %LinkTypes.datatype; #IMPLIED + media %MediaDesc.datatype; #IMPLIED +> +<!-- end of link.attlist -->]]> + +<!-- end of xhtml-link-1.mod --> +]]> + +<!-- Document Metainformation Module ............................ --> +<!ENTITY % xhtml-meta.module "INCLUDE" > +<![%xhtml-meta.module;[ +<!ENTITY % xhtml-meta.mod + PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-meta-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Document Metainformation Module ............................... --> +<!-- file: xhtml-meta-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-meta-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Meta Information + + meta + + This module declares the meta element type and its attributes, + used to provide declarative document metainformation. +--> + +<!-- meta: Generic Metainformation ..................... --> + +<!ENTITY % meta.element "INCLUDE" > +<![%meta.element;[ +<!ENTITY % meta.content "EMPTY" > +<!ENTITY % meta.qname "meta" > +<!ELEMENT %meta.qname; %meta.content; > +<!-- end of meta.element -->]]> + +<!ENTITY % meta.attlist "INCLUDE" > +<![%meta.attlist;[ +<!ATTLIST %meta.qname; + %XHTML.xmlns.attrib; + %I18n.attrib; + http-equiv NMTOKEN #IMPLIED + name NMTOKEN #IMPLIED + content CDATA #REQUIRED + scheme CDATA #IMPLIED +> +<!-- end of meta.attlist -->]]> + +<!-- end of xhtml-meta-1.mod --> +]]> + +<!-- Base Element Module ........................................ --> +<!ENTITY % xhtml-base.module "INCLUDE" > +<![%xhtml-base.module;[ +<!ENTITY % xhtml-base.mod + PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-base-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Base Element Module ........................................... --> +<!-- file: xhtml-base-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-base-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Base element + + base + + This module declares the base element type and its attributes, + used to define a base URI against which relative URIs in the + document will be resolved. + + Note that this module also redeclares the content model for + the head element to include the base element. +--> + +<!-- base: Document Base URI ........................... --> + +<!ENTITY % base.element "INCLUDE" > +<![%base.element;[ +<!ENTITY % base.content "EMPTY" > +<!ENTITY % base.qname "base" > +<!ELEMENT %base.qname; %base.content; > +<!-- end of base.element -->]]> + +<!ENTITY % base.attlist "INCLUDE" > +<![%base.attlist;[ +<!ATTLIST %base.qname; + %XHTML.xmlns.attrib; + href %URI.datatype; #REQUIRED +> +<!-- end of base.attlist -->]]> + +<!ENTITY % head.content + "( %HeadOpts.mix;, + ( ( %title.qname;, %HeadOpts.mix;, ( %base.qname;, %HeadOpts.mix; )? ) + | ( %base.qname;, %HeadOpts.mix;, ( %title.qname;, %HeadOpts.mix; ))))" +> + +<!-- end of xhtml-base-1.mod --> +]]> + +<!-- Scripting Module ........................................... --> +<!ENTITY % xhtml-script.module "INCLUDE" > +<![%xhtml-script.module;[ +<!ENTITY % xhtml-script.mod + PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-script-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Document Scripting Module ..................................... --> +<!-- file: xhtml-script-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-script-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Scripting + + script, noscript + + This module declares element types and attributes used to provide + support for executable scripts as well as an alternate content + container where scripts are not supported. +--> + +<!-- script: Scripting Statement ....................... --> + +<!ENTITY % script.element "INCLUDE" > +<![%script.element;[ +<!ENTITY % script.content "( #PCDATA )" > +<!ENTITY % script.qname "script" > +<!ELEMENT %script.qname; %script.content; > +<!-- end of script.element -->]]> + +<!ENTITY % script.attlist "INCLUDE" > +<![%script.attlist;[ +<!ATTLIST %script.qname; + %XHTML.xmlns.attrib; + charset %Charset.datatype; #IMPLIED + type %ContentType.datatype; #REQUIRED + src %URI.datatype; #IMPLIED + defer ( defer ) #IMPLIED + xml:space ( preserve ) #FIXED 'preserve' +> +<!-- end of script.attlist -->]]> + +<!-- noscript: No-Script Alternate Content ............. --> + +<!ENTITY % noscript.element "INCLUDE" > +<![%noscript.element;[ +<!ENTITY % noscript.content + "( %Block.mix; )+" +> +<!ENTITY % noscript.qname "noscript" > +<!ELEMENT %noscript.qname; %noscript.content; > +<!-- end of noscript.element -->]]> + +<!ENTITY % noscript.attlist "INCLUDE" > +<![%noscript.attlist;[ +<!ATTLIST %noscript.qname; + %Common.attrib; +> +<!-- end of noscript.attlist -->]]> + +<!-- end of xhtml-script-1.mod --> +]]> + +<!-- Style Sheets Module ......................................... --> +<!ENTITY % xhtml-style.module "INCLUDE" > +<![%xhtml-style.module;[ +<!ENTITY % xhtml-style.mod + PUBLIC "-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-style-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Document Style Sheet Module ................................... --> +<!-- file: xhtml-style-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD XHTML Style Sheets 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-style-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Style Sheets + + style + + This module declares the style element type and its attributes, + used to embed style sheet information in the document head element. +--> + +<!-- style: Style Sheet Information .................... --> + +<!ENTITY % style.element "INCLUDE" > +<![%style.element;[ +<!ENTITY % style.content "( #PCDATA )" > +<!ENTITY % style.qname "style" > +<!ELEMENT %style.qname; %style.content; > +<!-- end of style.element -->]]> + +<!ENTITY % style.attlist "INCLUDE" > +<![%style.attlist;[ +<!ATTLIST %style.qname; + %XHTML.xmlns.attrib; + %title.attrib; + %I18n.attrib; + type %ContentType.datatype; #REQUIRED + media %MediaDesc.datatype; #IMPLIED + xml:space ( preserve ) #FIXED 'preserve' +> +<!-- end of style.attlist -->]]> + +<!-- end of xhtml-style-1.mod --> +]]> + +<!-- Image Module ............................................... --> +<!ENTITY % xhtml-image.module "INCLUDE" > +<![%xhtml-image.module;[ +<!ENTITY % xhtml-image.mod + PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-image-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Images Module ................................................. --> +<!-- file: xhtml-image-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Rovision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-image-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Images + + img + + This module provides markup to support basic image embedding. +--> + +<!-- To avoid problems with text-only UAs as well as to make + image content understandable and navigable to users of + non-visual UAs, you need to provide a description with + the 'alt' attribute, and avoid server-side image maps. +--> + +<!ENTITY % img.element "INCLUDE" > +<![%img.element;[ +<!ENTITY % img.content "EMPTY" > +<!ENTITY % img.qname "img" > +<!ELEMENT %img.qname; %img.content; > +<!-- end of img.element -->]]> + +<!ENTITY % img.attlist "INCLUDE" > +<![%img.attlist;[ +<!ATTLIST %img.qname; + %Common.attrib; + src %URI.datatype; #REQUIRED + alt %Text.datatype; #REQUIRED + longdesc %URI.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + width %Length.datatype; #IMPLIED +> +<!-- end of img.attlist -->]]> + +<!-- end of xhtml-image-1.mod --> +]]> + +<!-- Client-side Image Map Module ............................... --> +<!ENTITY % xhtml-csismap.module "INCLUDE" > +<![%xhtml-csismap.module;[ +<!ENTITY % xhtml-csismap.mod + PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-csismap-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Client-side Image Map Module .................................. --> +<!-- file: xhtml-csismap-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-csismap-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Client-side Image Maps + + area, map + + This module declares elements and attributes to support client-side + image maps. This requires that the Image Module (or a module + declaring the img element type) be included in the DTD. + + These can be placed in the same document or grouped in a + separate document, although the latter isn't widely supported +--> + +<!ENTITY % area.element "INCLUDE" > +<![%area.element;[ +<!ENTITY % area.content "EMPTY" > +<!ENTITY % area.qname "area" > +<!ELEMENT %area.qname; %area.content; > +<!-- end of area.element -->]]> + +<!ENTITY % Shape.datatype "( rect | circle | poly | default )"> +<!ENTITY % Coords.datatype "CDATA" > + +<!ENTITY % area.attlist "INCLUDE" > +<![%area.attlist;[ +<!ATTLIST %area.qname; + %Common.attrib; + href %URI.datatype; #IMPLIED + shape %Shape.datatype; 'rect' + coords %Coords.datatype; #IMPLIED + nohref ( nohref ) #IMPLIED + alt %Text.datatype; #REQUIRED + tabindex %Number.datatype; #IMPLIED + accesskey %Character.datatype; #IMPLIED +> +<!-- end of area.attlist -->]]> + +<!-- modify anchor attribute definition list + to allow for client-side image maps +--> +<!ATTLIST %a.qname; + shape %Shape.datatype; 'rect' + coords %Coords.datatype; #IMPLIED +> + +<!-- modify img attribute definition list + to allow for client-side image maps +--> +<!ATTLIST %img.qname; + usemap IDREF #IMPLIED +> + +<!-- modify form input attribute definition list + to allow for client-side image maps +--> +<!ATTLIST %input.qname; + usemap IDREF #IMPLIED +> + +<!-- modify object attribute definition list + to allow for client-side image maps +--> +<!ATTLIST %object.qname; + usemap IDREF #IMPLIED +> + +<!-- 'usemap' points to the 'id' attribute of a <map> element, + which must be in the same document; support for external + document maps was not widely supported in HTML and is + eliminated in XHTML. + + It is considered an error for the element pointed to by + a usemap IDREF to occur in anything but a <map> element. +--> + +<!ENTITY % map.element "INCLUDE" > +<![%map.element;[ +<!ENTITY % map.content + "(( %Block.mix; ) | %area.qname; )+" +> +<!ENTITY % map.qname "map" > +<!ELEMENT %map.qname; %map.content; > +<!-- end of map.element -->]]> + +<!ENTITY % map.attlist "INCLUDE" > +<![%map.attlist;[ +<!ATTLIST %map.qname; + %XHTML.xmlns.attrib; + id ID #REQUIRED + %class.attrib; + %title.attrib; + %Core.extra.attrib; + %I18n.attrib; + %Events.attrib; +> +<!-- end of map.attlist -->]]> + +<!-- end of xhtml-csismap-1.mod --> +]]> + +<!-- Server-side Image Map Module ............................... --> +<!ENTITY % xhtml-ssismap.module "INCLUDE" > +<![%xhtml-ssismap.module;[ +<!ENTITY % xhtml-ssismap.mod + PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-ssismap-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Server-side Image Map Module .................................. --> +<!-- file: xhtml-ssismap-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-ssismap-1.mod" + + Revisions: +#2000-10-22: added declaration for 'ismap' on <input> + ....................................................................... --> + +<!-- Server-side Image Maps + + This adds the 'ismap' attribute to the img and input elements + to support server-side processing of a user selection. +--> + +<!ATTLIST %img.qname; + ismap ( ismap ) #IMPLIED +> + +<!ATTLIST %input.qname; + ismap ( ismap ) #IMPLIED +> + +<!-- end of xhtml-ssismap-1.mod --> +]]> + +<!-- Param Element Module ....................................... --> +<!ENTITY % xhtml-param.module "INCLUDE" > +<![%xhtml-param.module;[ +<!ENTITY % xhtml-param.mod + PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-param-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Param Element Module ..................................... --> +<!-- file: xhtml-param-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-param-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Parameters for Java Applets and Embedded Objects + + param + + This module provides declarations for the param element, + used to provide named property values for the applet + and object elements. +--> + +<!-- param: Named Property Value ....................... --> + +<!ENTITY % param.element "INCLUDE" > +<![%param.element;[ +<!ENTITY % param.content "EMPTY" > +<!ENTITY % param.qname "param" > +<!ELEMENT %param.qname; %param.content; > +<!-- end of param.element -->]]> + +<!ENTITY % param.attlist "INCLUDE" > +<![%param.attlist;[ +<!ATTLIST %param.qname; + %XHTML.xmlns.attrib; + %id.attrib; + name CDATA #REQUIRED + value CDATA #IMPLIED + valuetype ( data | ref | object ) 'data' + type %ContentType.datatype; #IMPLIED +> +<!-- end of param.attlist -->]]> + +<!-- end of xhtml-param-1.mod --> +]]> + +<!-- Embedded Object Module ..................................... --> +<!ENTITY % xhtml-object.module "INCLUDE" > +<![%xhtml-object.module;[ +<!ENTITY % xhtml-object.mod + PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-object-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Embedded Object Module ........................................ --> +<!-- file: xhtml-object-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-object-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Embedded Objects + + object + + This module declares the object element type and its attributes, used + to embed external objects as part of XHTML pages. In the document, + place param elements prior to other content within the object element. + + Note that use of this module requires instantiation of the Param + Element Module. +--> + +<!-- object: Generic Embedded Object ................... --> + +<!ENTITY % object.element "INCLUDE" > +<![%object.element;[ +<!ENTITY % object.content + "( #PCDATA | %Flow.mix; | %param.qname; )*" +> +<!ENTITY % object.qname "object" > +<!ELEMENT %object.qname; %object.content; > +<!-- end of object.element -->]]> + +<!ENTITY % object.attlist "INCLUDE" > +<![%object.attlist;[ +<!ATTLIST %object.qname; + %Common.attrib; + declare ( declare ) #IMPLIED + classid %URI.datatype; #IMPLIED + codebase %URI.datatype; #IMPLIED + data %URI.datatype; #IMPLIED + type %ContentType.datatype; #IMPLIED + codetype %ContentType.datatype; #IMPLIED + archive %URIs.datatype; #IMPLIED + standby %Text.datatype; #IMPLIED + height %Length.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + name CDATA #IMPLIED + tabindex %Number.datatype; #IMPLIED +> +<!-- end of object.attlist -->]]> + +<!-- end of xhtml-object-1.mod --> +]]> + +<!-- Tables Module ............................................... --> +<!ENTITY % xhtml-table.module "INCLUDE" > +<![%xhtml-table.module;[ +<!ENTITY % xhtml-table.mod + PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-table-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Table Module .................................................. --> +<!-- file: xhtml-table-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-table-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Tables + + table, caption, thead, tfoot, tbody, colgroup, col, tr, th, td + + This module declares element types and attributes used to provide + table markup similar to HTML 4, including features that enable + better accessibility for non-visual user agents. +--> + +<!-- declare qualified element type names: +--> +<!ENTITY % table.qname "table" > +<!ENTITY % caption.qname "caption" > +<!ENTITY % thead.qname "thead" > +<!ENTITY % tfoot.qname "tfoot" > +<!ENTITY % tbody.qname "tbody" > +<!ENTITY % colgroup.qname "colgroup" > +<!ENTITY % col.qname "col" > +<!ENTITY % tr.qname "tr" > +<!ENTITY % th.qname "th" > +<!ENTITY % td.qname "td" > + +<!-- The frame attribute specifies which parts of the frame around + the table should be rendered. The values are not the same as + CALS to avoid a name clash with the valign attribute. +--> +<!ENTITY % frame.attrib + "frame ( void + | above + | below + | hsides + | lhs + | rhs + | vsides + | box + | border ) #IMPLIED" +> + +<!-- The rules attribute defines which rules to draw between cells: + + If rules is absent then assume: + + "none" if border is absent or border="0" otherwise "all" +--> +<!ENTITY % rules.attrib + "rules ( none + | groups + | rows + | cols + | all ) #IMPLIED" +> + +<!-- horizontal alignment attributes for cell contents +--> +<!ENTITY % CellHAlign.attrib + "align ( left + | center + | right + | justify + | char ) #IMPLIED + char %Character.datatype; #IMPLIED + charoff %Length.datatype; #IMPLIED" +> + +<!-- vertical alignment attribute for cell contents +--> +<!ENTITY % CellVAlign.attrib + "valign ( top + | middle + | bottom + | baseline ) #IMPLIED" +> + +<!-- scope is simpler than axes attribute for common tables +--> +<!ENTITY % scope.attrib + "scope ( row + | col + | rowgroup + | colgroup ) #IMPLIED" +> + +<!-- table: Table Element .............................. --> + +<!ENTITY % table.element "INCLUDE" > +<![%table.element;[ +<!ENTITY % table.content + "( %caption.qname;?, ( %col.qname;* | %colgroup.qname;* ), + (( %thead.qname;?, %tfoot.qname;?, %tbody.qname;+ ) | ( %tr.qname;+ )))" +> +<!ELEMENT %table.qname; %table.content; > +<!-- end of table.element -->]]> + +<!ENTITY % table.attlist "INCLUDE" > +<![%table.attlist;[ +<!ATTLIST %table.qname; + %Common.attrib; + summary %Text.datatype; #IMPLIED + width %Length.datatype; #IMPLIED + border %Pixels.datatype; #IMPLIED + %frame.attrib; + %rules.attrib; + cellspacing %Length.datatype; #IMPLIED + cellpadding %Length.datatype; #IMPLIED +> +<!-- end of table.attlist -->]]> + +<!-- caption: Table Caption ............................ --> + +<!ENTITY % caption.element "INCLUDE" > +<![%caption.element;[ +<!ENTITY % caption.content + "( #PCDATA | %Inline.mix; )*" +> +<!ELEMENT %caption.qname; %caption.content; > +<!-- end of caption.element -->]]> + +<!ENTITY % caption.attlist "INCLUDE" > +<![%caption.attlist;[ +<!ATTLIST %caption.qname; + %Common.attrib; +> +<!-- end of caption.attlist -->]]> + +<!-- thead: Table Header ............................... --> + +<!-- Use thead to duplicate headers when breaking table + across page boundaries, or for static headers when + tbody sections are rendered in scrolling panel. +--> + +<!ENTITY % thead.element "INCLUDE" > +<![%thead.element;[ +<!ENTITY % thead.content "( %tr.qname; )+" > +<!ELEMENT %thead.qname; %thead.content; > +<!-- end of thead.element -->]]> + +<!ENTITY % thead.attlist "INCLUDE" > +<![%thead.attlist;[ +<!ATTLIST %thead.qname; + %Common.attrib; + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of thead.attlist -->]]> + +<!-- tfoot: Table Footer ............................... --> + +<!-- Use tfoot to duplicate footers when breaking table + across page boundaries, or for static footers when + tbody sections are rendered in scrolling panel. +--> + +<!ENTITY % tfoot.element "INCLUDE" > +<![%tfoot.element;[ +<!ENTITY % tfoot.content "( %tr.qname; )+" > +<!ELEMENT %tfoot.qname; %tfoot.content; > +<!-- end of tfoot.element -->]]> + +<!ENTITY % tfoot.attlist "INCLUDE" > +<![%tfoot.attlist;[ +<!ATTLIST %tfoot.qname; + %Common.attrib; + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of tfoot.attlist -->]]> + +<!-- tbody: Table Body ................................. --> + +<!-- Use multiple tbody sections when rules are needed + between groups of table rows. +--> + +<!ENTITY % tbody.element "INCLUDE" > +<![%tbody.element;[ +<!ENTITY % tbody.content "( %tr.qname; )+" > +<!ELEMENT %tbody.qname; %tbody.content; > +<!-- end of tbody.element -->]]> + +<!ENTITY % tbody.attlist "INCLUDE" > +<![%tbody.attlist;[ +<!ATTLIST %tbody.qname; + %Common.attrib; + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of tbody.attlist -->]]> + +<!-- colgroup: Table Column Group ...................... --> + +<!-- colgroup groups a set of col elements. It allows you + to group several semantically-related columns together. +--> + +<!ENTITY % colgroup.element "INCLUDE" > +<![%colgroup.element;[ +<!ENTITY % colgroup.content "( %col.qname; )*" > +<!ELEMENT %colgroup.qname; %colgroup.content; > +<!-- end of colgroup.element -->]]> + +<!ENTITY % colgroup.attlist "INCLUDE" > +<![%colgroup.attlist;[ +<!ATTLIST %colgroup.qname; + %Common.attrib; + span %Number.datatype; '1' + width %MultiLength.datatype; #IMPLIED + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of colgroup.attlist -->]]> + +<!-- col: Table Column ................................. --> + +<!-- col elements define the alignment properties for + cells in one or more columns. + + The width attribute specifies the width of the + columns, e.g. + + width="64" width in screen pixels + width="0.5*" relative width of 0.5 + + The span attribute causes the attributes of one + col element to apply to more than one column. +--> + +<!ENTITY % col.element "INCLUDE" > +<![%col.element;[ +<!ENTITY % col.content "EMPTY" > +<!ELEMENT %col.qname; %col.content; > +<!-- end of col.element -->]]> + +<!ENTITY % col.attlist "INCLUDE" > +<![%col.attlist;[ +<!ATTLIST %col.qname; + %Common.attrib; + span %Number.datatype; '1' + width %MultiLength.datatype; #IMPLIED + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of col.attlist -->]]> + +<!-- tr: Table Row ..................................... --> + +<!ENTITY % tr.element "INCLUDE" > +<![%tr.element;[ +<!ENTITY % tr.content "( %th.qname; | %td.qname; )+" > +<!ELEMENT %tr.qname; %tr.content; > +<!-- end of tr.element -->]]> + +<!ENTITY % tr.attlist "INCLUDE" > +<![%tr.attlist;[ +<!ATTLIST %tr.qname; + %Common.attrib; + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of tr.attlist -->]]> + +<!-- th: Table Header Cell ............................. --> + +<!-- th is for header cells, td for data, + but for cells acting as both use td +--> + +<!ENTITY % th.element "INCLUDE" > +<![%th.element;[ +<!ENTITY % th.content + "( #PCDATA | %Flow.mix; )*" +> +<!ELEMENT %th.qname; %th.content; > +<!-- end of th.element -->]]> + +<!ENTITY % th.attlist "INCLUDE" > +<![%th.attlist;[ +<!ATTLIST %th.qname; + %Common.attrib; + abbr %Text.datatype; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + %scope.attrib; + rowspan %Number.datatype; '1' + colspan %Number.datatype; '1' + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of th.attlist -->]]> + +<!-- td: Table Data Cell ............................... --> + +<!ENTITY % td.element "INCLUDE" > +<![%td.element;[ +<!ENTITY % td.content + "( #PCDATA | %Flow.mix; )*" +> +<!ELEMENT %td.qname; %td.content; > +<!-- end of td.element -->]]> + +<!ENTITY % td.attlist "INCLUDE" > +<![%td.attlist;[ +<!ATTLIST %td.qname; + %Common.attrib; + abbr %Text.datatype; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + %scope.attrib; + rowspan %Number.datatype; '1' + colspan %Number.datatype; '1' + %CellHAlign.attrib; + %CellVAlign.attrib; +> +<!-- end of td.attlist -->]]> + +<!-- end of xhtml-table-1.mod --> +]]> + +<!-- Forms Module ............................................... --> +<!ENTITY % xhtml-form.module "INCLUDE" > +<![%xhtml-form.module;[ +<!ENTITY % xhtml-form.mod + PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-form-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Forms Module .................................................. --> +<!-- file: xhtml-form-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-form-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Forms + + form, label, input, select, optgroup, option, + textarea, fieldset, legend, button + + This module declares markup to provide support for online + forms, based on the features found in HTML 4 forms. +--> + +<!-- declare qualified element type names: +--> +<!ENTITY % form.qname "form" > +<!ENTITY % label.qname "label" > +<!ENTITY % input.qname "input" > +<!ENTITY % select.qname "select" > +<!ENTITY % optgroup.qname "optgroup" > +<!ENTITY % option.qname "option" > +<!ENTITY % textarea.qname "textarea" > +<!ENTITY % fieldset.qname "fieldset" > +<!ENTITY % legend.qname "legend" > +<!ENTITY % button.qname "button" > + +<!-- %BlkNoForm.mix; includes all non-form block elements, + plus %Misc.class; +--> +<!ENTITY % BlkNoForm.mix + "%Heading.class; + | %List.class; + | %BlkStruct.class; + %BlkPhras.class; + %BlkPres.class; + %Table.class; + %Block.extra; + %Misc.class;" +> + +<!-- form: Form Element ................................ --> + +<!ENTITY % form.element "INCLUDE" > +<![%form.element;[ +<!ENTITY % form.content + "( %BlkNoForm.mix; + | %fieldset.qname; )+" +> +<!ELEMENT %form.qname; %form.content; > +<!-- end of form.element -->]]> + +<!ENTITY % form.attlist "INCLUDE" > +<![%form.attlist;[ +<!ATTLIST %form.qname; + %Common.attrib; + action %URI.datatype; #REQUIRED + method ( get | post ) 'get' + enctype %ContentType.datatype; 'application/x-www-form-urlencoded' + accept-charset %Charsets.datatype; #IMPLIED + accept %ContentTypes.datatype; #IMPLIED +> +<!-- end of form.attlist -->]]> + +<!-- label: Form Field Label Text ...................... --> + +<!-- Each label must not contain more than ONE field +--> + +<!ENTITY % label.element "INCLUDE" > +<![%label.element;[ +<!ENTITY % label.content + "( #PCDATA + | %input.qname; | %select.qname; | %textarea.qname; | %button.qname; + | %InlStruct.class; + %InlPhras.class; + %I18n.class; + %InlPres.class; + %Anchor.class; + %InlSpecial.class; + %Inline.extra; + %Misc.class; )*" +> +<!ELEMENT %label.qname; %label.content; > +<!-- end of label.element -->]]> + +<!ENTITY % label.attlist "INCLUDE" > +<![%label.attlist;[ +<!ATTLIST %label.qname; + %Common.attrib; + for IDREF #IMPLIED + accesskey %Character.datatype; #IMPLIED +> +<!-- end of label.attlist -->]]> + +<!-- input: Form Control ............................... --> + +<!ENTITY % input.element "INCLUDE" > +<![%input.element;[ +<!ENTITY % input.content "EMPTY" > +<!ELEMENT %input.qname; %input.content; > +<!-- end of input.element -->]]> + +<!ENTITY % input.attlist "INCLUDE" > +<![%input.attlist;[ +<!ENTITY % InputType.class + "( text | password | checkbox | radio | submit + | reset | file | hidden | image | button )" +> +<!-- attribute 'name' required for all but submit & reset +--> +<!ATTLIST %input.qname; + %Common.attrib; + type %InputType.class; 'text' + name CDATA #IMPLIED + value CDATA #IMPLIED + checked ( checked ) #IMPLIED + disabled ( disabled ) #IMPLIED + readonly ( readonly ) #IMPLIED + size %Number.datatype; #IMPLIED + maxlength %Number.datatype; #IMPLIED + src %URI.datatype; #IMPLIED + alt %Text.datatype; #IMPLIED + tabindex %Number.datatype; #IMPLIED + accesskey %Character.datatype; #IMPLIED + accept %ContentTypes.datatype; #IMPLIED +> +<!-- end of input.attlist -->]]> + +<!-- select: Option Selector ........................... --> + +<!ENTITY % select.element "INCLUDE" > +<![%select.element;[ +<!ENTITY % select.content + "( %optgroup.qname; | %option.qname; )+" +> +<!ELEMENT %select.qname; %select.content; > +<!-- end of select.element -->]]> + +<!ENTITY % select.attlist "INCLUDE" > +<![%select.attlist;[ +<!ATTLIST %select.qname; + %Common.attrib; + name CDATA #IMPLIED + size %Number.datatype; #IMPLIED + multiple ( multiple ) #IMPLIED + disabled ( disabled ) #IMPLIED + tabindex %Number.datatype; #IMPLIED +> +<!-- end of select.attlist -->]]> + +<!-- optgroup: Option Group ............................ --> + +<!ENTITY % optgroup.element "INCLUDE" > +<![%optgroup.element;[ +<!ENTITY % optgroup.content "( %option.qname; )+" > +<!ELEMENT %optgroup.qname; %optgroup.content; > +<!-- end of optgroup.element -->]]> + +<!ENTITY % optgroup.attlist "INCLUDE" > +<![%optgroup.attlist;[ +<!ATTLIST %optgroup.qname; + %Common.attrib; + disabled ( disabled ) #IMPLIED + label %Text.datatype; #REQUIRED +> +<!-- end of optgroup.attlist -->]]> + +<!-- option: Selectable Choice ......................... --> + +<!ENTITY % option.element "INCLUDE" > +<![%option.element;[ +<!ENTITY % option.content "( #PCDATA )" > +<!ELEMENT %option.qname; %option.content; > +<!-- end of option.element -->]]> + +<!ENTITY % option.attlist "INCLUDE" > +<![%option.attlist;[ +<!ATTLIST %option.qname; + %Common.attrib; + selected ( selected ) #IMPLIED + disabled ( disabled ) #IMPLIED + label %Text.datatype; #IMPLIED + value CDATA #IMPLIED +> +<!-- end of option.attlist -->]]> + +<!-- textarea: Multi-Line Text Field ................... --> + +<!ENTITY % textarea.element "INCLUDE" > +<![%textarea.element;[ +<!ENTITY % textarea.content "( #PCDATA )" > +<!ELEMENT %textarea.qname; %textarea.content; > +<!-- end of textarea.element -->]]> + +<!ENTITY % textarea.attlist "INCLUDE" > +<![%textarea.attlist;[ +<!ATTLIST %textarea.qname; + %Common.attrib; + name CDATA #IMPLIED + rows %Number.datatype; #REQUIRED + cols %Number.datatype; #REQUIRED + disabled ( disabled ) #IMPLIED + readonly ( readonly ) #IMPLIED + tabindex %Number.datatype; #IMPLIED + accesskey %Character.datatype; #IMPLIED +> +<!-- end of textarea.attlist -->]]> + +<!-- fieldset: Form Control Group ...................... --> + +<!-- #PCDATA is to solve the mixed content problem, + per specification only whitespace is allowed +--> + +<!ENTITY % fieldset.element "INCLUDE" > +<![%fieldset.element;[ +<!ENTITY % fieldset.content + "( #PCDATA | %legend.qname; | %Flow.mix; )*" +> +<!ELEMENT %fieldset.qname; %fieldset.content; > +<!-- end of fieldset.element -->]]> + +<!ENTITY % fieldset.attlist "INCLUDE" > +<![%fieldset.attlist;[ +<!ATTLIST %fieldset.qname; + %Common.attrib; +> +<!-- end of fieldset.attlist -->]]> + +<!-- legend: Fieldset Legend ........................... --> + +<!ENTITY % legend.element "INCLUDE" > +<![%legend.element;[ +<!ENTITY % legend.content + "( #PCDATA | %Inline.mix; )*" +> +<!ELEMENT %legend.qname; %legend.content; > +<!-- end of legend.element -->]]> + +<!ENTITY % legend.attlist "INCLUDE" > +<![%legend.attlist;[ +<!ATTLIST %legend.qname; + %Common.attrib; + accesskey %Character.datatype; #IMPLIED +> +<!-- end of legend.attlist -->]]> + +<!-- button: Push Button ............................... --> + +<!ENTITY % button.element "INCLUDE" > +<![%button.element;[ +<!ENTITY % button.content + "( #PCDATA + | %BlkNoForm.mix; + | %InlStruct.class; + %InlPhras.class; + %InlPres.class; + %I18n.class; + %InlSpecial.class; + %Inline.extra; )*" +> +<!ELEMENT %button.qname; %button.content; > +<!-- end of button.element -->]]> + +<!ENTITY % button.attlist "INCLUDE" > +<![%button.attlist;[ +<!ATTLIST %button.qname; + %Common.attrib; + name CDATA #IMPLIED + value CDATA #IMPLIED + type ( button | submit | reset ) 'submit' + disabled ( disabled ) #IMPLIED + tabindex %Number.datatype; #IMPLIED + accesskey %Character.datatype; #IMPLIED +> +<!-- end of button.attlist -->]]> + +<!-- end of xhtml-form-1.mod --> +]]> + +<!-- Legacy Markup ............................................... --> +<!ENTITY % xhtml-legacy.module "IGNORE" > +<![%xhtml-legacy.module;[ +<!ENTITY % xhtml-legacy.mod + PUBLIC "-//W3C//ELEMENTS XHTML Legacy Markup 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-legacy-1.mod" > +%xhtml-legacy.mod;]]> + +<!-- Document Structure Module (required) ....................... --> +<!ENTITY % xhtml-struct.module "INCLUDE" > +<![%xhtml-struct.module;[ +<!ENTITY % xhtml-struct.mod + PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN" + "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod" > +<!-- ...................................................................... --> +<!-- XHTML Structure Module .............................................. --> +<!-- file: xhtml-struct-1.mod + + This is XHTML, a reformulation of HTML as a modular XML application. + Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ SMI + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN" + SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod" + + Revisions: + (none) + ....................................................................... --> + +<!-- Document Structure + + title, head, body, html + + The Structure Module defines the major structural elements and + their attributes. + + Note that the content model of the head element type is redeclared + when the Base Module is included in the DTD. + + The parameter entity containing the XML namespace URI value used + for XHTML is '%XHTML.xmlns;', defined in the Qualified Names module. +--> + +<!-- title: Document Title ............................. --> + +<!-- The title element is not considered part of the flow of text. + It should be displayed, for example as the page header or + window title. Exactly one title is required per document. +--> + +<!ENTITY % title.element "INCLUDE" > +<![%title.element;[ +<!ENTITY % title.content "( #PCDATA )" > +<!ENTITY % title.qname "title" > +<!ELEMENT %title.qname; %title.content; > +<!-- end of title.element -->]]> + +<!ENTITY % title.attlist "INCLUDE" > +<![%title.attlist;[ +<!ATTLIST %title.qname; + %XHTML.xmlns.attrib; + %I18n.attrib; +> +<!-- end of title.attlist -->]]> + +<!-- head: Document Head ............................... --> + +<!ENTITY % head.element "INCLUDE" > +<![%head.element;[ +<!ENTITY % head.content + "( %HeadOpts.mix;, %title.qname;, %HeadOpts.mix; )" +> +<!ENTITY % head.qname "head" > +<!ELEMENT %head.qname; %head.content; > +<!-- end of head.element -->]]> + +<!ENTITY % head.attlist "INCLUDE" > +<![%head.attlist;[ +<!-- reserved for future use with document profiles +--> +<!ENTITY % profile.attrib + "profile %URI.datatype; '%XHTML.profile;'" +> + +<!ATTLIST %head.qname; + %XHTML.xmlns.attrib; + %I18n.attrib; + %profile.attrib; +> +<!-- end of head.attlist -->]]> + +<!-- body: Document Body ............................... --> + +<!ENTITY % body.element "INCLUDE" > +<![%body.element;[ +<!ENTITY % body.content + "( %Block.mix; )+" +> +<!ENTITY % body.qname "body" > +<!ELEMENT %body.qname; %body.content; > +<!-- end of body.element -->]]> + +<!ENTITY % body.attlist "INCLUDE" > +<![%body.attlist;[ +<!ATTLIST %body.qname; + %Common.attrib; +> +<!-- end of body.attlist -->]]> + +<!-- html: XHTML Document Element ...................... --> + +<!ENTITY % html.element "INCLUDE" > +<![%html.element;[ +<!ENTITY % html.content "( %head.qname;, %body.qname; )" > +<!ENTITY % html.qname "html" > +<!ELEMENT %html.qname; %html.content; > +<!-- end of html.element -->]]> + +<!ENTITY % html.attlist "INCLUDE" > +<![%html.attlist;[ +<!-- version attribute value defined in driver +--> +<!ENTITY % XHTML.version.attrib + "version %FPI.datatype; #FIXED '%XHTML.version;'" +> + +<!-- see the Qualified Names module for information + on how to extend XHTML using XML namespaces +--> +<!ATTLIST %html.qname; + %XHTML.xmlns.attrib; + %XHTML.version.attrib; + %I18n.attrib; +> +<!-- end of html.attlist -->]]> + +<!-- end of xhtml-struct-1.mod --> +]]> + +<!-- end of XHTML 1.1 DTD ................................................. --> +<!-- ....................................................................... --> + +]]> + +<!-- instantiate MathML 2.0 DTD ................................. --> +<![%MATHML.module;[ +<!ENTITY % MATHML.dtd.decl + 'PUBLIC "-//W3C//DTD MathML 2.0//EN" + "%MATHML.dtd.sysid;"' +> +<!ENTITY % MATHML.dtd %MATHML.dtd.decl; > +<!-- MathML 2.0 DTD ....................................................... --> +<!-- file: mathml2.dtd +--> + +<!-- MathML 2.0 DTD + + This is the Mathematical Markup Language (MathML) 2.0, an XML + application for describing mathematical notation and capturing + both its structure and content. + + Copyright 1998-2002 World Wide Web Consortium + (Massachusetts Institute of Technology, Institut National de + Recherche en Informatique et en Automatique, Keio University). + All Rights Reserved. + + Permission to use, copy, modify and distribute the MathML 2.0 DTD and + its accompanying documentation for any purpose and without fee is + hereby granted in perpetuity, provided that the above copyright notice + and this paragraph appear in all copies. The copyright holders make + no representation about the suitability of the DTD for any purpose. + + It is provided "as is" without expressed or implied warranty. + + Revision: $Id: xhtml-math-svg-flat-20020809.dtd,v 1.1.2.1 2002/08/19 01:59:02 link Exp $ + + This entity may be identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD MathML 2.0//EN" + SYSTEM "mathml2.dtd" + + Revisions: editor and revision history at EOF +--> + + +<!-- MathML Qualified Names module ............................... --> +<!ENTITY % mathml-qname.module "INCLUDE" > +<![%mathml-qname.module;[ +<!ENTITY % mathml-qname.mod + PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN" + "mathml2-qname-1.mod" > +%mathml-qname.mod;]]> + +<!-- if %NS.prefixed; is INCLUDE, include all NS attributes, + otherwise just those associated with MathML +--> +<![%NS.prefixed;[ +<!ENTITY % MATHML.NamespaceDecl.attrib + "%NamespaceDecl.attrib;" +> +]]> +<!ENTITY % MATHML.NamespaceDecl.attrib + "%MATHML.xmlns.attrib;" +> + +<!ENTITY % XLINK.prefix "xlink" > + +<!-- Attributes shared by all elements .......................... --> + +<!ENTITY % MATHML.Common.attrib + "%MATHML.NamespaceDecl.attrib; + %XLINK.prefix;:href CDATA #IMPLIED + %XLINK.prefix;:type CDATA #IMPLIED + class CDATA #IMPLIED + style CDATA #IMPLIED + id ID #IMPLIED + xref IDREF #IMPLIED + other CDATA #IMPLIED" +> + +<!-- Presentation element set ................................... --> + +<!-- Attribute definitions --> + +<!ENTITY % att-fontsize + "fontsize CDATA #IMPLIED" > +<!ENTITY % att-fontweight + "fontweight ( normal | bold ) #IMPLIED" > +<!ENTITY % att-fontstyle + "fontstyle ( normal | italic ) #IMPLIED" > +<!ENTITY % att-fontfamily + "fontfamily CDATA #IMPLIED" > +<!ENTITY % att-color + "color CDATA #IMPLIED" > + +<!-- MathML2 typographically-distinguished symbol attributes --> + +<!ENTITY % att-mathvariant + "mathvariant CDATA #IMPLIED" > +<!ENTITY % att-mathsize + "mathsize CDATA #IMPLIED" > +<!ENTITY % att-mathcolor + "mathcolor CDATA #IMPLIED" > +<!ENTITY % att-mathbackground + "mathbackground CDATA #IMPLIED" > + +<!ENTITY % att-fontinfo + "%att-fontsize; + %att-fontweight; + %att-fontstyle; + %att-fontfamily; + %att-color; + %att-mathvariant; + %att-mathsize; + %att-mathcolor; + %att-mathbackground;" +> + +<!ENTITY % att-form + "form ( prefix | infix | postfix ) #IMPLIED" > +<!ENTITY % att-fence + "fence ( true | false ) #IMPLIED" > +<!ENTITY % att-separator + "separator ( true | false ) #IMPLIED" > +<!ENTITY % att-lspace + "lspace CDATA #IMPLIED" > +<!ENTITY % att-rspace + "rspace CDATA #IMPLIED" > +<!ENTITY % att-stretchy + "stretchy ( true | false ) #IMPLIED" > +<!ENTITY % att-symmetric + "symmetric ( true | false ) #IMPLIED" > +<!ENTITY % att-maxsize + "maxsize CDATA #IMPLIED" > +<!ENTITY % att-minsize + "minsize CDATA #IMPLIED" > +<!ENTITY % att-largeop + "largeop ( true | false) #IMPLIED" > +<!ENTITY % att-movablelimits + "movablelimits ( true | false ) #IMPLIED" > +<!ENTITY % att-accent + "accent ( true | false ) #IMPLIED" > + +<!ENTITY % att-opinfo + "%att-form; + %att-fence; + %att-separator; + %att-lspace; + %att-rspace; + %att-stretchy; + %att-symmetric; + %att-maxsize; + %att-minsize; + %att-largeop; + %att-movablelimits; + %att-accent;" +> +<!ENTITY % att-width + "width CDATA #IMPLIED" > +<!ENTITY % att-height + "height CDATA #IMPLIED" > +<!ENTITY % att-depth + "depth CDATA #IMPLIED" > +<!ENTITY % att-linebreak + "linebreak CDATA #IMPLIED" > +<!ENTITY % att-sizeinfo + "%att-width; + %att-height; + %att-depth;" +> +<!ENTITY % att-lquote + "lquote CDATA #IMPLIED" > +<!ENTITY % att-rquote + "rquote CDATA #IMPLIED" > +<!ENTITY % att-linethickness + "linethickness CDATA #IMPLIED" > +<!ENTITY % att-scriptlevel + "scriptlevel CDATA #IMPLIED" > +<!ENTITY % att-displaystyle + "displaystyle ( true | false ) #IMPLIED" > +<!ENTITY % att-scriptsizemultiplier + "scriptsizemultiplier CDATA #IMPLIED" > +<!ENTITY % att-scriptminsize + "scriptminsize CDATA #IMPLIED" > +<!ENTITY % att-background + "background CDATA #IMPLIED" > +<!ENTITY % att-veryverythinmathspace + "veryverythinmathspace CDATA #IMPLIED" > +<!ENTITY % att-verythinmathspace + "verythinmathspace CDATA #IMPLIED" > +<!ENTITY % att-thinmathspace + "thinmathspace CDATA #IMPLIED" > +<!ENTITY % att-mediummathspace + "mediummathspace CDATA #IMPLIED" > +<!ENTITY % att-thickmathspace + "thickmathspace CDATA #IMPLIED" > +<!ENTITY % att-verythickmathspace + "verythickmathspace CDATA #IMPLIED" > +<!ENTITY % att-veryverythickmathspace + "veryverythickmathspace CDATA #IMPLIED" > +<!ENTITY % att-open + "open CDATA #IMPLIED" > +<!ENTITY % att-close + "close CDATA #IMPLIED" > +<!ENTITY % att-separators + "separators CDATA #IMPLIED" > +<!ENTITY % att-subscriptshift + "subscriptshift CDATA #IMPLIED" > +<!ENTITY % att-superscriptshift + "superscriptshift CDATA #IMPLIED" > +<!ENTITY % att-accentunder + "accentunder ( true | false ) #IMPLIED" > +<!ENTITY % att-align + "align CDATA #IMPLIED" > +<!ENTITY % att-numalign + "numalign CDATA #IMPLIED" > +<!ENTITY % att-denomalign + "denomalign CDATA #IMPLIED" > +<!ENTITY % att-rowalign + "rowalign CDATA #IMPLIED" > +<!ENTITY % att-columnalign + "columnalign CDATA #IMPLIED" > +<!ENTITY % att-columnwidth + "columnwidth CDATA #IMPLIED" > +<!ENTITY % att-groupalign + "groupalign CDATA #IMPLIED" > +<!ENTITY % att-alignmentscope + "alignmentscope CDATA #IMPLIED" > +<!ENTITY % att-rowspacing + "rowspacing CDATA #IMPLIED" > +<!ENTITY % att-columnspacing + "columnspacing CDATA #IMPLIED" > +<!ENTITY % att-rowlines + "rowlines CDATA #IMPLIED" > +<!ENTITY % att-columnlines + "columnlines CDATA #IMPLIED" > +<!ENTITY % att-frame + "frame ( none | solid | dashed ) #IMPLIED" > +<!ENTITY % att-side + "side ( left | right | leftoverlap | rightoverlap ) #IMPLIED" > +<!ENTITY % att-framespacing + "framespacing CDATA #IMPLIED" > +<!ENTITY % att-equalrows + "equalrows CDATA #IMPLIED" > +<!ENTITY % att-equalcolumns + "equalcolumns CDATA #IMPLIED" > + +<!ENTITY % att-tableinfo + "%att-align; + %att-rowalign; + %att-columnalign; + %att-columnwidth; + %att-groupalign; + %att-alignmentscope; + %att-side; + %att-rowspacing; + %att-columnspacing; + %att-rowlines; + %att-columnlines; + %att-width; + %att-frame; + %att-framespacing; + %att-equalrows; + %att-equalcolumns; + %att-displaystyle;" +> + +<!ENTITY % att-rowspan + "rowspan CDATA #IMPLIED" > +<!ENTITY % att-columnspan + "columnspan CDATA #IMPLIED" > +<!ENTITY % att-edge + "edge ( left | right ) #IMPLIED" > +<!ENTITY % att-actiontype + "actiontype CDATA #IMPLIED" > +<!ENTITY % att-selection + "selection CDATA #IMPLIED" > + +<!ENTITY % att-name + "name CDATA #IMPLIED" > +<!ENTITY % att-alt + "alt CDATA #IMPLIED" > +<!ENTITY % att-index + "index CDATA #IMPLIED" > + +<!ENTITY % att-bevelled + "bevelled CDATA #IMPLIED" > + +<!-- Presentation schemata with content --> + +<!ENTITY % ptoken + "%mi.qname; | %mn.qname; | %mo.qname; + | %mtext.qname; | %ms.qname;" > + +<!ATTLIST %mi.qname; + %MATHML.Common.attrib; + %att-fontinfo; +> + +<!ATTLIST %mn.qname; + %MATHML.Common.attrib; + %att-fontinfo; +> + +<!ATTLIST %mo.qname; + %MATHML.Common.attrib; + %att-fontinfo; + %att-opinfo; +> + +<!ATTLIST %mtext.qname; + %MATHML.Common.attrib; + %att-fontinfo; +> + +<!ATTLIST %ms.qname; + %MATHML.Common.attrib; + %att-fontinfo; + %att-lquote; + %att-rquote; +> + +<!-- Empty presentation schemata --> + +<!ENTITY % petoken + "%mspace.qname;" > +<!ELEMENT %mspace.qname; EMPTY > + +<!ATTLIST %mspace.qname; + %att-sizeinfo; + %att-linebreak; + %MATHML.Common.attrib; +> + +<!-- Presentation: general layout schemata --> + +<!ENTITY % pgenschema + "%mrow.qname; | %mfrac.qname; | %msqrt.qname; | %mroot.qname; + | %menclose.qname; | %mstyle.qname; | %merror.qname; + | %mpadded.qname; | %mphantom.qname; | %mfenced.qname;" > + +<!ATTLIST %mrow.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %mfrac.qname; + %MATHML.Common.attrib; + %att-bevelled; + %att-numalign; + %att-denomalign; + %att-linethickness; +> + +<!ATTLIST %msqrt.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %menclose.qname; + %MATHML.Common.attrib; + notation CDATA 'longdiv' > + +<!ATTLIST %mroot.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %mstyle.qname; + %MATHML.Common.attrib; + %att-fontinfo; + %att-opinfo; + %att-lquote; + %att-rquote; + %att-linethickness; + %att-scriptlevel; + %att-scriptsizemultiplier; + %att-scriptminsize; + %att-background; + %att-veryverythinmathspace; + %att-verythinmathspace; + %att-thinmathspace; + %att-mediummathspace; + %att-thickmathspace; + %att-verythickmathspace; + %att-veryverythickmathspace; + %att-open; + %att-close; + %att-separators; + %att-subscriptshift; + %att-superscriptshift; + %att-accentunder; + %att-tableinfo; + %att-rowspan; + %att-columnspan; + %att-edge; + %att-actiontype; + %att-selection; +> + +<!ATTLIST %merror.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %mpadded.qname; + %MATHML.Common.attrib; + %att-sizeinfo; + %att-lspace; +> + +<!ATTLIST %mphantom.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %mfenced.qname; + %MATHML.Common.attrib; + %att-open; + %att-close; + %att-separators; +> + +<!-- Presentation layout schemata: scripts and limits --> + +<!ENTITY % pscrschema + "%msub.qname; | %msup.qname; | %msubsup.qname; | %munder.qname; + | %mover.qname; | %munderover.qname; | %mmultiscripts.qname;" > + +<!ATTLIST %msub.qname; + %MATHML.Common.attrib; + %att-subscriptshift; +> + +<!ATTLIST %msup.qname; + %MATHML.Common.attrib; + %att-superscriptshift; +> + +<!ATTLIST %msubsup.qname; + %MATHML.Common.attrib; + %att-subscriptshift; + %att-superscriptshift; +> + +<!ATTLIST %munder.qname; + %MATHML.Common.attrib; + %att-accentunder; +> + +<!ATTLIST %mover.qname; + %MATHML.Common.attrib; + %att-accent; +> + +<!ATTLIST %munderover.qname; + %MATHML.Common.attrib; + %att-accent; + %att-accentunder; +> + +<!ATTLIST %mmultiscripts.qname; + %MATHML.Common.attrib; + %att-subscriptshift; + %att-superscriptshift; +> + +<!-- Presentation layout schemata: empty elements for scripts --> + +<!ENTITY % pscreschema + "%mprescripts.qname; | %none.qname;" > + +<!ELEMENT %mprescripts.qname; EMPTY > +<!ATTLIST %mprescripts.qname; + %MATHML.xmlns.attrib; > + +<!ELEMENT %none.qname; EMPTY > +<!ATTLIST %none.qname; + %MATHML.xmlns.attrib; > + +<!-- Presentation layout schemata: tables --> + +<!ENTITY % ptabschema + "%mtable.qname; | %mtr.qname; | %mlabeledtr.qname; | %mtd.qname;" > + +<!ATTLIST %mtable.qname; + %MATHML.Common.attrib; + %att-tableinfo; +> + +<!ATTLIST %mtr.qname; + %MATHML.Common.attrib; + %att-rowalign; + %att-columnalign; + %att-groupalign; +> + +<!ATTLIST %mlabeledtr.qname; + %MATHML.Common.attrib; + %att-rowalign; + %att-columnalign; + %att-groupalign; +> + +<!ATTLIST %mtd.qname; + %MATHML.Common.attrib; + %att-rowalign; + %att-columnalign; + %att-groupalign; + %att-rowspan; + %att-columnspan; +> + +<!ENTITY % plschema + "%pgenschema; | %pscrschema; | %ptabschema;" > + +<!-- Empty presentation layout schemata --> + +<!ENTITY % peschema + "%maligngroup.qname; | %malignmark.qname;" > + +<!ELEMENT %malignmark.qname; EMPTY > + +<!ATTLIST %malignmark.qname; + %att-edge; > + +<!ELEMENT %maligngroup.qname; EMPTY > +<!ATTLIST %maligngroup.qname; + %MATHML.Common.attrib; + %att-groupalign; +> + + +<!ELEMENT %mglyph.qname; EMPTY > +<!ATTLIST %mglyph.qname; + %att-alt; + %att-fontfamily; + %att-index; > + +<!-- Presentation action schemata --> + +<!ENTITY % pactions + "%maction.qname;" > +<!ATTLIST %maction.qname; + %MATHML.Common.attrib; + %att-actiontype; + %att-selection; +> + +<!-- The following entity for substitution into + content constructs excludes elements that + are not valid as expressions. +--> + +<!ENTITY % PresInCont + "%ptoken; | %petoken; | + %plschema; | %peschema; | %pactions;" > + +<!-- Presentation entity: all presentation constructs --> + +<!ENTITY % Presentation + "%ptoken; | %petoken; | %pscreschema; | + %plschema; | %peschema; | %pactions;"> + +<!-- Content element set ........................................ --> + +<!-- Attribute definitions --> + +<!ENTITY % att-base + "base CDATA '10'" > +<!ENTITY % att-closure + "closure CDATA 'closed'" > +<!ENTITY % att-definition + "definitionURL CDATA ''" > +<!ENTITY % att-encoding + "encoding CDATA ''" > +<!ENTITY % att-nargs + "nargs CDATA '1'" > +<!ENTITY % att-occurrence + "occurrence CDATA 'function-model'" > +<!ENTITY % att-order + "order CDATA 'numeric'" > +<!ENTITY % att-scope + "scope CDATA 'local'" > +<!ENTITY % att-type + "type CDATA #IMPLIED" > + +<!-- Content elements: leaf nodes --> + +<!ENTITY % ctoken + "%csymbol.qname; | %ci.qname; | %cn.qname;" > + +<!ATTLIST %ci.qname; + %MATHML.Common.attrib; + %att-type; + %att-definition; + %att-encoding; +> + +<!ATTLIST %csymbol.qname; + %MATHML.Common.attrib; + %att-encoding; + %att-type; + %att-definition; +> + +<!ATTLIST %cn.qname; + %MATHML.Common.attrib; + %att-type; + %att-base; + %att-definition; + %att-encoding; +> + +<!-- Content elements: specials --> + +<!ENTITY % cspecial + "%apply.qname; | %reln.qname; | + %lambda.qname;" > + +<!ATTLIST %apply.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %reln.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %lambda.qname; + %MATHML.Common.attrib; +> + +<!-- Content elements: others --> + +<!ENTITY % cother + "%condition.qname; | %declare.qname; | %sep.qname;" > + +<!ATTLIST %condition.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %declare.qname; + %MATHML.Common.attrib; + %att-type; + %att-scope; + %att-nargs; + %att-occurrence; + %att-definition; + %att-encoding; +> + +<!ELEMENT %sep.qname; EMPTY > +<!ATTLIST %sep.qname; + %MATHML.xmlns.attrib; > + +<!-- Content elements: semantic mapping --> + +<!ENTITY % csemantics + "%semantics.qname; | %annotation.qname; | + %annotation-xml.qname;" > + +<!ATTLIST %semantics.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ATTLIST %annotation.qname; + %MATHML.Common.attrib; + %att-encoding; +> + +<!ATTLIST %annotation-xml.qname; + %MATHML.Common.attrib; + %att-encoding; +> + +<!-- Content elements: constructors --> + +<!ENTITY % cconstructor + "%interval.qname; | %list.qname; | %matrix.qname; + | %matrixrow.qname; | %set.qname; | %vector.qname; + | %piecewise.qname; " > + +<!ATTLIST %interval.qname; + %MATHML.Common.attrib; + %att-closure; +> + +<!ATTLIST %set.qname; + %MATHML.Common.attrib; + %att-type; +> + +<!ATTLIST %list.qname; + %MATHML.Common.attrib; + %att-order; +> + +<!ATTLIST %vector.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %matrix.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %matrixrow.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %piecewise.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %piece.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %otherwise.qname; + %MATHML.Common.attrib; +> + + +<!-- Content elements: symbols --> + +<!ENTITY % c0ary + "%integers.qname; | + %reals.qname; | + %rationals.qname; | + %naturalnumbers.qname; | + %complexes.qname; | + %primes.qname; | + %exponentiale.qname; | + %imaginaryi.qname; | + %notanumber.qname; | + %true.qname; | + %false.qname; | + %emptyset.qname; | + %pi.qname; | + %eulergamma.qname; | + %infinity.qname;" > + +<!ELEMENT %integers.qname; EMPTY > +<!ATTLIST %integers.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %reals.qname; EMPTY > +<!ATTLIST %reals.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %rationals.qname; EMPTY > +<!ATTLIST %rationals.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %naturalnumbers.qname; EMPTY > +<!ATTLIST %naturalnumbers.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %complexes.qname; EMPTY > +<!ATTLIST %complexes.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %primes.qname; EMPTY > +<!ATTLIST %primes.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %exponentiale.qname; EMPTY > +<!ATTLIST %exponentiale.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %imaginaryi.qname; EMPTY > +<!ATTLIST %imaginaryi.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %notanumber.qname; EMPTY > +<!ATTLIST %notanumber.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %true.qname; EMPTY > +<!ATTLIST %true.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %false.qname; EMPTY > +<!ATTLIST %false.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %emptyset.qname; EMPTY > +<!ATTLIST %emptyset.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %pi.qname; EMPTY > +<!ATTLIST %pi.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %eulergamma.qname; EMPTY > +<!ATTLIST %eulergamma.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %infinity.qname; EMPTY > +<!ATTLIST %infinity.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!-- Content elements: operators --> + +<!ENTITY % cfuncop1ary + "%inverse.qname; | %ident.qname;| + %domain.qname; | %codomain.qname; | + %image.qname; " > + +<!ELEMENT %inverse.qname; EMPTY > +<!ATTLIST %inverse.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %domain.qname; EMPTY > +<!ATTLIST %domain.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %codomain.qname; EMPTY > +<!ATTLIST %codomain.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %image.qname; EMPTY > +<!ATTLIST %image.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + + + +<!ENTITY % cfuncopnary + "%fn.qname; | %compose.qname;" > + +<!ATTLIST %fn.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %ident.qname; EMPTY > +<!ATTLIST %ident.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %compose.qname; EMPTY > +<!ATTLIST %compose.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % carithop1ary + "%abs.qname; | %conjugate.qname; | %exp.qname; | %factorial.qname; | + %arg.qname; | %real.qname; | %imaginary.qname; | + %floor.qname; | %ceiling.qname;" > + +<!ELEMENT %exp.qname; EMPTY > +<!ATTLIST %exp.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %abs.qname; EMPTY > +<!ATTLIST %abs.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arg.qname; EMPTY > +<!ATTLIST %arg.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %real.qname; EMPTY > +<!ATTLIST %real.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %imaginary.qname; EMPTY > +<!ATTLIST %imaginary.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %conjugate.qname; EMPTY > +<!ATTLIST %conjugate.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %factorial.qname; EMPTY > +<!ATTLIST %factorial.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + + +<!ELEMENT %floor.qname; EMPTY > +<!ATTLIST %floor.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %ceiling.qname; EMPTY > +<!ATTLIST %ceiling.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> +<!ENTITY % carithop1or2ary + "%minus.qname;" > + +<!ELEMENT %minus.qname; EMPTY > +<!ATTLIST %minus.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % carithop2ary + "%quotient.qname; | %divide.qname; | %power.qname; | %rem.qname;" > + +<!ELEMENT %quotient.qname; EMPTY > +<!ATTLIST %quotient.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %divide.qname; EMPTY > +<!ATTLIST %divide.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %power.qname; EMPTY > +<!ATTLIST %power.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %rem.qname; EMPTY > +<!ATTLIST %rem.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % carithopnary + "%plus.qname; | %times.qname; | %max.qname; + | %min.qname; | %gcd.qname; | %lcm.qname;" > + +<!ELEMENT %plus.qname; EMPTY > +<!ATTLIST %plus.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %max.qname; EMPTY > +<!ATTLIST %max.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %min.qname; EMPTY > +<!ATTLIST %min.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %times.qname; EMPTY > +<!ATTLIST %times.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %gcd.qname; EMPTY > +<!ATTLIST %gcd.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %lcm.qname; EMPTY > +<!ATTLIST %lcm.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % carithoproot + "%root.qname;" > + +<!ELEMENT %root.qname; EMPTY > +<!ATTLIST %root.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clogicopquant + "%exists.qname; | %forall.qname;" > + +<!ELEMENT %exists.qname; EMPTY > +<!ATTLIST %exists.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %forall.qname; EMPTY > +<!ATTLIST %forall.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clogicopnary + "%and.qname; | %or.qname; | %xor.qname;" > + +<!ELEMENT %and.qname; EMPTY > +<!ATTLIST %and.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %or.qname; EMPTY > +<!ATTLIST %or.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %xor.qname; EMPTY > +<!ATTLIST %xor.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clogicop1ary + "%not.qname;" > + +<!ELEMENT %not.qname; EMPTY > +<!ATTLIST %not.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clogicop2ary + "%implies.qname;" > + +<!ELEMENT %implies.qname; EMPTY > +<!ATTLIST %implies.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % ccalcop + "%log.qname; | %int.qname; | %diff.qname; | %partialdiff.qname; | + %divergence.qname; | %grad.qname; | %curl.qname; | %laplacian.qname;" > + +<!ELEMENT %divergence.qname; EMPTY > +<!ATTLIST %divergence.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %grad.qname; EMPTY > +<!ATTLIST %grad.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %curl.qname; EMPTY > +<!ATTLIST %curl.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %laplacian.qname; EMPTY > +<!ATTLIST %laplacian.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %log.qname; EMPTY > +<!ATTLIST %log.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %int.qname; EMPTY > +<!ATTLIST %int.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %diff.qname; EMPTY > +<!ATTLIST %diff.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %partialdiff.qname; EMPTY > +<!ATTLIST %partialdiff.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % ccalcop1ary + "%ln.qname;" > + +<!ELEMENT %ln.qname; EMPTY > +<!ATTLIST %ln.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % csetop1ary + "%card.qname;" > + +<!ELEMENT %card.qname; EMPTY > +<!ATTLIST %card.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % csetop2ary + "%setdiff.qname;" > + +<!ELEMENT %setdiff.qname; EMPTY > +<!ATTLIST %setdiff.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % csetopnary + "%union.qname; | %intersect.qname; | %cartesianproduct.qname; " > + +<!ELEMENT %union.qname; EMPTY > +<!ATTLIST %union.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %intersect.qname; EMPTY > +<!ATTLIST %intersect.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %cartesianproduct.qname; EMPTY > +<!ATTLIST %cartesianproduct.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % cseqop + "%sum.qname; | %product.qname; | %limit.qname;" > + +<!ELEMENT %sum.qname; EMPTY > +<!ATTLIST %sum.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %product.qname; EMPTY > +<!ATTLIST %product.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %limit.qname; EMPTY > +<!ATTLIST %limit.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % ctrigop + "%sin.qname; | %cos.qname; | %tan.qname; + | %sec.qname; | %csc.qname; | %cot.qname; + | %sinh.qname; | %cosh.qname; | %tanh.qname; + | %sech.qname; | %csch.qname; | %coth.qname; + | %arcsin.qname; | %arccos.qname; | %arctan.qname; + | %arccosh.qname; | %arccot.qname; | %arccoth.qname; + | %arccsc.qname; | %arccsch.qname; | %arcsec.qname; + | %arcsech.qname; | %arcsinh.qname; | %arctanh.qname; + " > + +<!ELEMENT %sin.qname; EMPTY > +<!ATTLIST %sin.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %cos.qname; EMPTY > +<!ATTLIST %cos.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %tan.qname; EMPTY > +<!ATTLIST %tan.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %sec.qname; EMPTY > +<!ATTLIST %sec.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %csc.qname; EMPTY > +<!ATTLIST %csc.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %cot.qname; EMPTY > +<!ATTLIST %cot.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %sinh.qname; EMPTY > +<!ATTLIST %sinh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %cosh.qname; EMPTY > +<!ATTLIST %cosh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %tanh.qname; EMPTY > +<!ATTLIST %tanh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %sech.qname; EMPTY > +<!ATTLIST %sech.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %csch.qname; EMPTY > +<!ATTLIST %csch.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %coth.qname; EMPTY > +<!ATTLIST %coth.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arcsin.qname; EMPTY > +<!ATTLIST %arcsin.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arccos.qname; EMPTY > +<!ATTLIST %arccos.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arctan.qname; EMPTY > +<!ATTLIST %arctan.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arccosh.qname; EMPTY > +<!ATTLIST %arccosh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + + +<!ELEMENT %arccot.qname; EMPTY > +<!ATTLIST %arccot.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arccoth.qname; EMPTY > +<!ATTLIST %arccoth.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + + +<!ELEMENT %arccsc.qname; EMPTY > +<!ATTLIST %arccsc.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arccsch.qname; EMPTY > +<!ATTLIST %arccsch.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arcsec.qname; EMPTY > +<!ATTLIST %arcsec.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arcsech.qname; EMPTY > +<!ATTLIST %arcsech.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arcsinh.qname; EMPTY > +<!ATTLIST %arcsinh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %arctanh.qname; EMPTY > +<!ATTLIST %arctanh.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + + + +<!ENTITY % cstatopnary + "%mean.qname; | %sdev.qname; | + %variance.qname; | %median.qname; | + %mode.qname;" > + +<!ELEMENT %mean.qname; EMPTY > +<!ATTLIST %mean.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %sdev.qname; EMPTY > +<!ATTLIST %sdev.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %variance.qname; EMPTY > +<!ATTLIST %variance.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %median.qname; EMPTY > +<!ATTLIST %median.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %mode.qname; EMPTY > +<!ATTLIST %mode.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % cstatopmoment + "%moment.qname;" > + +<!ELEMENT %moment.qname; EMPTY > +<!ATTLIST %moment.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clalgop1ary + "%determinant.qname; | + %transpose.qname;" > + +<!ELEMENT %determinant.qname; EMPTY > +<!ATTLIST %determinant.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %transpose.qname; EMPTY > +<!ATTLIST %transpose.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clalgop2ary + "%vectorproduct.qname; + | %scalarproduct.qname; + | %outerproduct.qname;" > + +<!ELEMENT %vectorproduct.qname; EMPTY > +<!ATTLIST %vectorproduct.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %scalarproduct.qname; EMPTY > +<!ATTLIST %scalarproduct.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %outerproduct.qname; EMPTY > +<!ATTLIST %outerproduct.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % clalgopnary + "%selector.qname;" > + +<!ELEMENT %selector.qname; EMPTY > +<!ATTLIST %selector.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!-- Content elements: relations --> + +<!ENTITY % cgenrel2ary + "%neq.qname; | %factorof.qname;" > + +<!ELEMENT %neq.qname; EMPTY > +<!ATTLIST %neq.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %factorof.qname; EMPTY > +<!ATTLIST %factorof.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % cgenrelnary + "%eq.qname; | %leq.qname; | %lt.qname; | %geq.qname; + | %gt.qname;| %equivalent.qname; | %approx.qname;" > + +<!ELEMENT %eq.qname; EMPTY > +<!ATTLIST %eq.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %equivalent.qname; EMPTY > +<!ATTLIST %equivalent.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %approx.qname; EMPTY > +<!ATTLIST %approx.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %gt.qname; EMPTY > +<!ATTLIST %gt.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %lt.qname; EMPTY > +<!ATTLIST %lt.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %geq.qname; EMPTY > +<!ATTLIST %geq.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %leq.qname; EMPTY > +<!ATTLIST %leq.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % csetrel2ary + "%in.qname; | %notin.qname; | %notsubset.qname; | %notprsubset.qname;" > + +<!ELEMENT %in.qname; EMPTY > +<!ATTLIST %in.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %notin.qname; EMPTY > +<!ATTLIST %notin.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %notsubset.qname; EMPTY > +<!ATTLIST %notsubset.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %notprsubset.qname; EMPTY > +<!ATTLIST %notprsubset.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % csetrelnary + "%subset.qname; | %prsubset.qname;" > + +<!ELEMENT %subset.qname; EMPTY > +<!ATTLIST %subset.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ELEMENT %prsubset.qname; EMPTY > +<!ATTLIST %prsubset.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; +> + +<!ENTITY % cseqrel2ary + "%tendsto.qname;" > + +<!ELEMENT %tendsto.qname; EMPTY > +<!ATTLIST %tendsto.qname; + %MATHML.Common.attrib; + %att-definition; + %att-encoding; + %att-type; +> + +<!-- Content elements: quantifiers --> + +<!ENTITY % cquantifier + "%lowlimit.qname; | %uplimit.qname; | %bvar.qname; + | %degree.qname; | %logbase.qname; + | %momentabout.qname; | %domainofapplication.qname; " > + +<!ATTLIST %lowlimit.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %uplimit.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %bvar.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %degree.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %logbase.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %momentabout.qname; + %MATHML.Common.attrib; +> + +<!ATTLIST %domainofapplication.qname; + %MATHML.Common.attrib; +> + +<!-- Operator groups --> + +<!ENTITY % cop1ary + "%cfuncop1ary; | %carithop1ary; | %clogicop1ary; | + %ccalcop1ary; | %ctrigop; | %clalgop1ary; | + %csetop1ary;" > + +<!ENTITY % cop2ary + "%carithop2ary; | %clogicop2ary;| %clalgop2ary; | %csetop2ary;" > + +<!ENTITY % copnary + "%cfuncopnary; | %carithopnary; | %clogicopnary; | + %csetopnary; | %cstatopnary; | %clalgopnary;" > + +<!ENTITY % copmisc + "%carithoproot; | %carithop1or2ary; | %ccalcop; | + %cseqop; | %cstatopmoment; | %clogicopquant;" > + +<!-- Relation groups --> + +<!ENTITY % crel2ary + "%cgenrel2ary; | %csetrel2ary; | %cseqrel2ary;" > + +<!ENTITY % crelnary + "%cgenrelnary; | %csetrelnary;" > + +<!-- Content constructs: all --> + +<!ENTITY % Content + "%ctoken; | %cspecial; | %cother; | %csemantics; | %c0ary; + | %cconstructor; | %cquantifier; | %cop1ary; | %cop2ary; + | %copnary; |%copmisc; | %crel2ary; | %crelnary;" > + +<!-- Content constructs for substitution in presentation structures --> + +<!ENTITY % ContInPres + "%ci.qname; |%csymbol.qname;| %cn.qname; | %c0ary; | + %apply.qname; | %fn.qname; | + %lambda.qname; | %reln.qname; | + %cconstructor; | + %semantics.qname; |%declare.qname;" > + +<!-- ............................................................. --> +<!-- Recursive definition for content of expressions. Include + presentation constructs at lowest level so presentation + layout schemata hold presentation or content elements. + Include content constructs at lowest level so content + elements hold PCDATA or presentation elements at leaf + level (for permitted substitutable elements in context) +--> + +<!ENTITY % ContentExpression + "(%Content; | %PresInCont;)*" > +<!ENTITY % PresExpression + "(%Presentation; | %ContInPres;)*" > +<!ENTITY % MathExpression + "(%PresInCont; | %ContInPres;)*" > + +<!-- PCDATA or MathML character elements --> +<!ENTITY % MathMLCharacters + "#PCDATA | %mglyph.qname; " > + +<!-- Content elements: tokens --> +<!-- (may contain embedded presentation constructs) --> + +<!ELEMENT %ci.qname; (%MathMLCharacters; | %PresInCont;)* > +<!ELEMENT %csymbol.qname; (%MathMLCharacters; | %PresInCont;)* > +<!ELEMENT %cn.qname; (%MathMLCharacters; | %sep.qname; | %PresInCont;)* > + +<!-- Content elements: special --> + +<!ELEMENT %apply.qname; (%ContentExpression;) > +<!ELEMENT %reln.qname; (%ContentExpression;) > +<!ELEMENT %lambda.qname; (%ContentExpression;) > + +<!-- Content elements: other --> + +<!ELEMENT %condition.qname; (%ContentExpression;) > +<!ELEMENT %declare.qname; (%ContentExpression;) > + +<!-- Content elements: semantics --> + +<!ELEMENT %semantics.qname; (%ContentExpression;) > +<!ENTITY % Annotation.content "( #PCDATA )" > +<!ELEMENT %annotation.qname; %Annotation.content; > + +<!ENTITY % Annotation-xml.content "ANY" > +<!ELEMENT %annotation-xml.qname; %Annotation-xml.content; > + +<!-- Content elements: constructors --> + +<!ELEMENT %interval.qname; (%ContentExpression;) > +<!ELEMENT %set.qname; (%ContentExpression;) > +<!ELEMENT %list.qname; (%ContentExpression;) > +<!ELEMENT %vector.qname; (%ContentExpression;) > +<!ELEMENT %matrix.qname; (%ContentExpression;) > +<!ELEMENT %matrixrow.qname; (%ContentExpression;) > + +<!ELEMENT %piecewise.qname; ((%piece.qname;)*, (%otherwise.qname;)? ) > +<!ELEMENT %piece.qname; (%ContentExpression;) > +<!ELEMENT %otherwise.qname; (%ContentExpression;) > + +<!-- Content elements: operator (user-defined) --> + +<!ELEMENT %fn.qname; (%ContentExpression;) > + +<!-- Content elements: quantifiers --> + +<!ELEMENT %lowlimit.qname; (%ContentExpression;) > +<!ELEMENT %uplimit.qname; (%ContentExpression;) > +<!ELEMENT %bvar.qname; (%ContentExpression;) > +<!ELEMENT %degree.qname; (%ContentExpression;) > +<!ELEMENT %logbase.qname; (%ContentExpression;) > +<!ELEMENT %momentabout.qname; (%ContentExpression;) > +<!ELEMENT %domainofapplication.qname; (%ContentExpression;) > + +<!-- ............................................................. --> +<!-- Presentation layout schemata contain tokens, + layout and content schemata. +--> + +<!ELEMENT %mstyle.qname; (%PresExpression;) > +<!ELEMENT %merror.qname; (%PresExpression;) > +<!ELEMENT %mphantom.qname; (%PresExpression;) > +<!ELEMENT %mrow.qname; (%PresExpression;) > +<!ELEMENT %mfrac.qname; (%PresExpression;) > +<!ELEMENT %msqrt.qname; (%PresExpression;) > +<!ELEMENT %menclose.qname; (%PresExpression;) > +<!ELEMENT %mroot.qname; (%PresExpression;) > +<!ELEMENT %msub.qname; (%PresExpression;) > +<!ELEMENT %msup.qname; (%PresExpression;) > +<!ELEMENT %msubsup.qname; (%PresExpression;) > +<!ELEMENT %mmultiscripts.qname; (%PresExpression;) > +<!ELEMENT %munder.qname; (%PresExpression;) > +<!ELEMENT %mover.qname; (%PresExpression;) > +<!ELEMENT %munderover.qname; (%PresExpression;) > +<!ELEMENT %mtable.qname; (%PresExpression;) > +<!ELEMENT %mtr.qname; (%PresExpression;) > +<!ELEMENT %mlabeledtr.qname; (%PresExpression;) > +<!ELEMENT %mtd.qname; (%PresExpression;) > +<!ELEMENT %maction.qname; (%PresExpression;) > +<!ELEMENT %mfenced.qname; (%PresExpression;) > +<!ELEMENT %mpadded.qname; (%PresExpression;) > + +<!-- Presentation elements contain PCDATA or malignmark constructs. --> + +<!ELEMENT %mi.qname; (%MathMLCharacters; | + %malignmark.qname;)* > +<!ELEMENT %mn.qname; (%MathMLCharacters; | + %malignmark.qname;)* > +<!ELEMENT %mo.qname; (%MathMLCharacters; | + %malignmark.qname;)* > +<!ELEMENT %mtext.qname; (%MathMLCharacters; | + %malignmark.qname;)* > +<!ELEMENT %ms.qname; (%MathMLCharacters; | + %malignmark.qname;)* > + +<!-- Browser interface definition ............................... --> + +<!-- Attributes for top-level element "math" --> + +<!ENTITY % att-macros + "macros CDATA #IMPLIED" > +<!ENTITY % att-mode + "mode CDATA #IMPLIED" > +<!ENTITY % att-display + "display CDATA #IMPLIED" > + +<!ENTITY % att-topinfo + "%MATHML.Common.attrib; + %att-macros; + %att-mode; + %att-display;" > + +<!-- Attributes for browser interface element --> + +<!ENTITY % att-baseline + "baseline CDATA #IMPLIED" > +<!ENTITY % att-overflow + "overflow ( scroll | elide | truncate | scale ) 'scroll'" > +<!ENTITY % att-altimg + "altimg CDATA #IMPLIED" > +<!ENTITY % att-alttext + "alttext CDATA #IMPLIED" > + +<!ENTITY % att-browif + "%att-type; + %att-name; + %att-height; + %att-width; + %att-baseline; + %att-overflow; + %att-altimg; + %att-alttext;" > + +<!-- ............................................................. --> +<!-- The top-level element "math" contains MathML encoded + mathematics. The "math" element has the browser info + attributes iff it is also the browser interface element. +--> + +<!ELEMENT %math.qname; (%MathExpression;) > + +<!ATTLIST %math.qname; + %att-topinfo; + %att-browif; > + +<!-- MathML Character Entities .............................................. --> +<!ENTITY % mathml-charent.module "INCLUDE" > +<![%mathml-charent.module;[ +<!-- Entity sets from ISO Technical Report 9573-13 ..... --> + +<!ENTITY % ent-isoamsa + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Arrow Relations for MathML 2.0//EN" + "iso9573-13/isoamsa.ent" > + +<!-- + File isoamsa.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY angzarr "⍼" ><!--angle with down zig-zag arrow --> +<!ENTITY cirmid "⫯" ><!--circle, mid below --> +<!ENTITY cudarrl "⤸" ><!--left, curved, down arrow --> +<!ENTITY cudarrr "⤵" ><!--right, curved, down arrow --> +<!ENTITY cularr "↶" ><!--/curvearrowleft A: left curved arrow --> +<!ENTITY cularrp "⤽" ><!--curved left arrow with plus --> +<!ENTITY curarr "↷" ><!--/curvearrowright A: rt curved arrow --> +<!ENTITY curarrm "⤼" ><!--curved right arrow with minus --> +<!ENTITY Darr "↡" ><!--down two-headed arrow --> +<!ENTITY dArr "⇓" ><!--/Downarrow A: down dbl arrow --> +<!ENTITY ddarr "⇊" ><!--/downdownarrows A: two down arrows --> +<!ENTITY DDotrahd "⤑" ><!--right arrow with dotted stem --> +<!ENTITY dfisht "⥿" ><!--down fish tail --> +<!ENTITY dHar "⥥" ><!--down harpoon-left, down harpoon-right --> +<!ENTITY dharl "⇃" ><!--/downharpoonleft A: dn harpoon-left --> +<!ENTITY dharr "⇂" ><!--/downharpoonright A: down harpoon-rt --> +<!ENTITY duarr "⇵" ><!--down arrow, up arrow --> +<!ENTITY duhar "⥯" ><!--down harp, up harp --> +<!ENTITY dzigrarr "⟿" ><!--right long zig-zag arrow --> +<!ENTITY erarr "⥱" ><!--equal, right arrow below --> +<!ENTITY hArr "⇔" ><!--/Leftrightarrow A: l&r dbl arrow --> +<!ENTITY harr "↔" ><!--/leftrightarrow A: l&r arrow --> +<!ENTITY harrcir "⥈" ><!--left and right arrow with a circle --> +<!ENTITY harrw "↭" ><!--/leftrightsquigarrow A: l&r arr-wavy --> +<!ENTITY hoarr "⇿" ><!--horizontal open arrow --> +<!ENTITY imof "⊷" ><!--image of --> +<!ENTITY lAarr "⇚" ><!--/Lleftarrow A: left triple arrow --> +<!ENTITY Larr "↞" ><!--/twoheadleftarrow A: --> +<!ENTITY larrbfs "⤟" ><!--left arrow-bar, filled square --> +<!ENTITY larrfs "⤝" ><!--left arrow, filled square --> +<!ENTITY larrhk "↩" ><!--/hookleftarrow A: left arrow-hooked --> +<!ENTITY larrlp "↫" ><!--/looparrowleft A: left arrow-looped --> +<!ENTITY larrpl "⤹" ><!--left arrow, plus --> +<!ENTITY larrsim "⥳" ><!--left arrow, similar --> +<!ENTITY larrtl "↢" ><!--/leftarrowtail A: left arrow-tailed --> +<!ENTITY lAtail "⤛" ><!--left double arrow-tail --> +<!ENTITY latail "⤙" ><!--left arrow-tail --> +<!ENTITY lBarr "⤎" ><!--left doubly broken arrow --> +<!ENTITY lbarr "⤌" ><!--left broken arrow --> +<!ENTITY ldca "⤶" ><!--left down curved arrow --> +<!ENTITY ldrdhar "⥧" ><!--left harpoon-down over right harpoon-down --> +<!ENTITY ldrushar "⥋" ><!--left-down-right-up harpoon --> +<!ENTITY ldsh "↲" ><!--left down angled arrow --> +<!ENTITY lfisht "⥼" ><!--left fish tail --> +<!ENTITY lHar "⥢" ><!--left harpoon-up over left harpoon-down --> +<!ENTITY lhard "↽" ><!--/leftharpoondown A: l harpoon-down --> +<!ENTITY lharu "↼" ><!--/leftharpoonup A: left harpoon-up --> +<!ENTITY lharul "⥪" ><!--left harpoon-up over long dash --> +<!ENTITY llarr "⇇" ><!--/leftleftarrows A: two left arrows --> +<!ENTITY llhard "⥫" ><!--left harpoon-down below long dash --> +<!ENTITY loarr "⇽" ><!--left open arrow --> +<!ENTITY lrarr "⇆" ><!--/leftrightarrows A: l arr over r arr --> +<!ENTITY lrhar "⇋" ><!--/leftrightharpoons A: l harp over r --> +<!ENTITY lrhard "⥭" ><!--right harpoon-down below long dash --> +<!ENTITY lsh "↰" ><!--/Lsh A: --> +<!ENTITY lurdshar "⥊" ><!--left-up-right-down harpoon --> +<!ENTITY luruhar "⥦" ><!--left harpoon-up over right harpoon-up --> +<!ENTITY Map "⤅" ><!--twoheaded mapsto --> +<!ENTITY map "↦" ><!--/mapsto A: --> +<!ENTITY midcir "⫰" ><!--mid, circle below --> +<!ENTITY mumap "⊸" ><!--/multimap A: --> +<!ENTITY nearhk "⤤" ><!--NE arrow-hooked --> +<!ENTITY neArr "⇗" ><!--NE pointing dbl arrow --> +<!ENTITY nearr "↗" ><!--/nearrow A: NE pointing arrow --> +<!ENTITY nesear "⤨" ><!--/toea A: NE & SE arrows --> +<!ENTITY nhArr "⇎" ><!--/nLeftrightarrow A: not l&r dbl arr --> +<!ENTITY nharr "↮" ><!--/nleftrightarrow A: not l&r arrow --> +<!ENTITY nlArr "⇍" ><!--/nLeftarrow A: not implied by --> +<!ENTITY nlarr "↚" ><!--/nleftarrow A: not left arrow --> +<!ENTITY nrArr "⇏" ><!--/nRightarrow A: not implies --> +<!ENTITY nrarr "↛" ><!--/nrightarrow A: not right arrow --> +<!ENTITY nrarrc "⤳̸" ><!--not right arrow-curved --> +<!ENTITY nrarrw "↝̸" ><!--not right arrow-wavy --> +<!ENTITY nvHarr "⇎" ><!--not, vert, left and right double arrow --> +<!ENTITY nvlArr "⇍" ><!--not, vert, left double arrow --> +<!ENTITY nvrArr "⇏" ><!--not, vert, right double arrow --> +<!ENTITY nwarhk "⤣" ><!--NW arrow-hooked --> +<!ENTITY nwArr "⇖" ><!--NW pointing dbl arrow --> +<!ENTITY nwarr "↖" ><!--/nwarrow A: NW pointing arrow --> +<!ENTITY nwnear "⤧" ><!--NW & NE arrows --> +<!ENTITY olarr "↺" ><!--/circlearrowleft A: l arr in circle --> +<!ENTITY orarr "↻" ><!--/circlearrowright A: r arr in circle --> +<!ENTITY origof "⊶" ><!--original of --> +<!ENTITY rAarr "⇛" ><!--/Rrightarrow A: right triple arrow --> +<!ENTITY Rarr "↠" ><!--/twoheadrightarrow A: --> +<!ENTITY rarrap "⥵" ><!--approximate, right arrow above --> +<!ENTITY rarrbfs "⤠" ><!--right arrow-bar, filled square --> +<!ENTITY rarrc "⤳" ><!--right arrow-curved --> +<!ENTITY rarrfs "⤞" ><!--right arrow, filled square --> +<!ENTITY rarrhk "↪" ><!--/hookrightarrow A: rt arrow-hooked --> +<!ENTITY rarrlp "↬" ><!--/looparrowright A: rt arrow-looped --> +<!ENTITY rarrpl "⥅" ><!--right arrow, plus --> +<!ENTITY rarrsim "⥴" ><!--right arrow, similar --> +<!ENTITY Rarrtl "⤖" ><!--right two-headed arrow with tail --> +<!ENTITY rarrtl "↣" ><!--/rightarrowtail A: rt arrow-tailed --> +<!ENTITY rarrw "↝" ><!--/rightsquigarrow A: rt arrow-wavy --> +<!ENTITY rAtail "⤜" ><!--right double arrow-tail --> +<!ENTITY ratail "↣" ><!--right arrow-tail --> +<!ENTITY RBarr "⤐" ><!--/drbkarow A: twoheaded right broken arrow --> +<!ENTITY rBarr "⤏" ><!--/dbkarow A: right doubly broken arrow --> +<!ENTITY rbarr "⤍" ><!--/bkarow A: right broken arrow --> +<!ENTITY rdca "⤷" ><!--right down curved arrow --> +<!ENTITY rdldhar "⥩" ><!--right harpoon-down over left harpoon-down --> +<!ENTITY rdsh "↳" ><!--right down angled arrow --> +<!ENTITY rfisht "⥽" ><!--right fish tail --> +<!ENTITY rHar "⥤" ><!--right harpoon-up over right harpoon-down --> +<!ENTITY rhard "⇁" ><!--/rightharpoondown A: rt harpoon-down --> +<!ENTITY rharu "⇀" ><!--/rightharpoonup A: rt harpoon-up --> +<!ENTITY rharul "⥬" ><!--right harpoon-up over long dash --> +<!ENTITY rlarr "⇄" ><!--/rightleftarrows A: r arr over l arr --> +<!ENTITY rlhar "⇌" ><!--/rightleftharpoons A: r harp over l --> +<!ENTITY roarr "⇾" ><!--right open arrow --> +<!ENTITY rrarr "⇉" ><!--/rightrightarrows A: two rt arrows --> +<!ENTITY rsh "↱" ><!--/Rsh A: --> +<!ENTITY ruluhar "⥨" ><!--right harpoon-up over left harpoon-up --> +<!ENTITY searhk "⤥" ><!--/hksearow A: SE arrow-hooken --> +<!ENTITY seArr "⇘" ><!--SE pointing dbl arrow --> +<!ENTITY searr "↘" ><!--/searrow A: SE pointing arrow --> +<!ENTITY seswar "⤩" ><!--/tosa A: SE & SW arrows --> +<!ENTITY simrarr "⥲" ><!--similar, right arrow below --> +<!ENTITY slarr "←" ><!--short left arrow --> +<!ENTITY srarr "→" ><!--short right arrow --> +<!ENTITY swarhk "⤦" ><!--/hkswarow A: SW arrow-hooked --> +<!ENTITY swArr "⇙" ><!--SW pointing dbl arrow --> +<!ENTITY swarr "↙" ><!--/swarrow A: SW pointing arrow --> +<!ENTITY swnwar "⤪" ><!--SW & NW arrows --> +<!ENTITY Uarr "↟" ><!--up two-headed arrow --> +<!ENTITY uArr "⇑" ><!--/Uparrow A: up dbl arrow --> +<!ENTITY Uarrocir "⥉" ><!--up two-headed arrow above circle --> +<!ENTITY udarr "⇅" ><!--up arrow, down arrow --> +<!ENTITY udhar "⥮" ><!--up harp, down harp --> +<!ENTITY ufisht "⥾" ><!--up fish tail --> +<!ENTITY uHar "⥣" ><!--up harpoon-left, up harpoon-right --> +<!ENTITY uharl "↿" ><!--/upharpoonleft A: up harpoon-left --> +<!ENTITY uharr "↾" ><!--/upharpoonright /restriction A: up harp-r --> +<!ENTITY uuarr "⇈" ><!--/upuparrows A: two up arrows --> +<!ENTITY vArr "⇕" ><!--/Updownarrow A: up&down dbl arrow --> +<!ENTITY varr "↕" ><!--/updownarrow A: up&down arrow --> +<!ENTITY xhArr "⟺" ><!--/Longleftrightarrow A: long l&r dbl arr --> +<!ENTITY xharr "⟷" ><!--/longleftrightarrow A: long l&r arr --> +<!ENTITY xlArr "⟸" ><!--/Longleftarrow A: long l dbl arrow --> +<!ENTITY xlarr "⟵" ><!--/longleftarrow A: long left arrow --> +<!ENTITY xmap "⟼" ><!--/longmapsto A: --> +<!ENTITY xrArr "⟹" ><!--/Longrightarrow A: long rt dbl arr --> +<!ENTITY xrarr "⟶" ><!--/longrightarrow A: long right arrow --> +<!ENTITY zigrarr "⇝" ><!--right zig-zag arrow --> + + +<!ENTITY % ent-isoamsb + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Binary Operators for MathML 2.0//EN" + "iso9573-13/isoamsb.ent" > + +<!-- + File isoamsb.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + References to the VARIANT SELECTOR 1 character (︀) + should match the uses listed in Unicode Technical Report 25. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY ac "⤏" ><!--most positive --> +<!ENTITY acE "⧛" ><!--most positive, two lines below --> +<!ENTITY amalg "⨿" ><!--/amalg B: amalgamation or coproduct --> +<!ENTITY barvee "⊽" ><!--bar, vee --> +<!ENTITY Barwed "⌆" ><!--/doublebarwedge B: log and, dbl bar above --> +<!ENTITY barwed "⊼" ><!--/barwedge B: logical and, bar above --> +<!ENTITY bsolb "⧅" ><!--reverse solidus in square --> +<!ENTITY Cap "⋒" ><!--/Cap /doublecap B: dbl intersection --> +<!ENTITY capand "⩄" ><!--intersection, and --> +<!ENTITY capbrcup "⩉" ><!--intersection, bar, union --> +<!ENTITY capcap "⩋" ><!--intersection, intersection, joined --> +<!ENTITY capcup "⩇" ><!--intersection above union --> +<!ENTITY capdot "⩀" ><!--intersection, with dot --> +<!ENTITY caps "∩︀" ><!--intersection, serifs --> +<!ENTITY ccaps "⩍" ><!--closed intersection, serifs --> +<!ENTITY ccups "⩌" ><!--closed union, serifs --> +<!ENTITY ccupssm "⩐" ><!--closed union, serifs, smash product --> +<!ENTITY coprod "∐" ><!--/coprod L: coproduct operator --> +<!ENTITY Cup "⋓" ><!--/Cup /doublecup B: dbl union --> +<!ENTITY cupbrcap "⩈" ><!--union, bar, intersection --> +<!ENTITY cupcap "⩆" ><!--union above intersection --> +<!ENTITY cupcup "⩊" ><!--union, union, joined --> +<!ENTITY cupdot "⊍" ><!--union, with dot --> +<!ENTITY cupor "⩅" ><!--union, or --> +<!ENTITY cups "∪︀" ><!--union, serifs --> +<!ENTITY cuvee "⋎" ><!--/curlyvee B: curly logical or --> +<!ENTITY cuwed "⋏" ><!--/curlywedge B: curly logical and --> +<!ENTITY Dagger "‡" ><!--/ddagger B: double dagger relation --> +<!ENTITY dagger "†" ><!--/dagger B: dagger relation --> +<!ENTITY diam "⋄" ><!--/diamond B: open diamond --> +<!ENTITY divonx "⋇" ><!--/divideontimes B: division on times --> +<!ENTITY eplus "⩱" ><!--equal, plus --> +<!ENTITY hercon "⊹" ><!--hermitian conjugate matrix --> +<!ENTITY intcal "⊺" ><!--/intercal B: intercal --> +<!ENTITY iprod "⨼" ><!--/intprod --> +<!ENTITY loplus "⨭" ><!--plus sign in left half circle --> +<!ENTITY lotimes "⨴" ><!--multiply sign in left half circle --> +<!ENTITY lthree "⋋" ><!--/leftthreetimes B: --> +<!ENTITY ltimes "⋉" ><!--/ltimes B: times sign, left closed --> +<!ENTITY midast "*" ><!--/ast B: asterisk --> +<!ENTITY minusb "⊟" ><!--/boxminus B: minus sign in box --> +<!ENTITY minusd "∸" ><!--/dotminus B: minus sign, dot above --> +<!ENTITY minusdu "⨪" ><!--minus sign, dot below --> +<!ENTITY ncap "⩃" ><!--bar, intersection --> +<!ENTITY ncup "⩂" ><!--bar, union --> +<!ENTITY oast "⊛" ><!--/circledast B: asterisk in circle --> +<!ENTITY ocir "⊚" ><!--/circledcirc B: small circle in circle --> +<!ENTITY odash "⊝" ><!--/circleddash B: hyphen in circle --> +<!ENTITY odiv "⨸" ><!--divide in circle --> +<!ENTITY odot "⊙" ><!--/odot B: middle dot in circle --> +<!ENTITY odsold "⦼" ><!--dot, solidus, dot in circle --> +<!ENTITY ofcir "⦿" ><!--filled circle in circle --> +<!ENTITY ogt "⧁" ><!--greater-than in circle --> +<!ENTITY ohbar "⦵" ><!--circle with horizontal bar --> +<!ENTITY olcir "⦾" ><!--large circle in circle --> +<!ENTITY olt "⧀" ><!--less-than in circle --> +<!ENTITY omid "⦶" ><!--vertical bar in circle --> +<!ENTITY ominus "⊖" ><!--/ominus B: minus sign in circle --> +<!ENTITY opar "⦷" ><!--parallel in circle --> +<!ENTITY operp "⦹" ><!--perpendicular in circle --> +<!ENTITY oplus "⊕" ><!--/oplus B: plus sign in circle --> +<!ENTITY osol "⊘" ><!--/oslash B: solidus in circle --> +<!ENTITY Otimes "⨷" ><!--multiply sign in double circle --> +<!ENTITY otimes "⊗" ><!--/otimes B: multiply sign in circle --> +<!ENTITY otimesas "⨶" ><!--multiply sign in circle, circumflex accent --> +<!ENTITY ovbar "⌽" ><!--circle with vertical bar --> +<!ENTITY plusacir "⨣" ><!--plus, circumflex accent above --> +<!ENTITY plusb "⊞" ><!--/boxplus B: plus sign in box --> +<!ENTITY pluscir "⨢" ><!--plus, small circle above --> +<!ENTITY plusdo "∔" ><!--/dotplus B: plus sign, dot above --> +<!ENTITY plusdu "⨥" ><!--plus sign, dot below --> +<!ENTITY pluse "⩲" ><!--plus, equals --> +<!ENTITY plussim "⨦" ><!--plus, similar below --> +<!ENTITY plustwo "⨧" ><!--plus, two; Nim-addition --> +<!ENTITY prod "∏" ><!--/prod L: product operator --> +<!ENTITY race "⧚" ><!--reverse most positive, line below --> +<!ENTITY roplus "⨮" ><!--plus sign in right half circle --> +<!ENTITY rotimes "⨵" ><!--multiply sign in right half circle --> +<!ENTITY rthree "⋌" ><!--/rightthreetimes B: --> +<!ENTITY rtimes "⋊" ><!--/rtimes B: times sign, right closed --> +<!ENTITY sdot "⋅" ><!--/cdot B: small middle dot --> +<!ENTITY sdotb "⊡" ><!--/dotsquare /boxdot B: small dot in box --> +<!ENTITY setmn "∖" ><!--/setminus B: reverse solidus --> +<!ENTITY simplus "⨤" ><!--plus, similar above --> +<!ENTITY smashp "⨳" ><!--smash product --> +<!ENTITY solb "⧄" ><!--solidus in square --> +<!ENTITY sqcap "⊓" ><!--/sqcap B: square intersection --> +<!ENTITY sqcaps "⊓︀" ><!--square intersection, serifs --> +<!ENTITY sqcup "⊔" ><!--/sqcup B: square union --> +<!ENTITY sqcups "⊔︀" ><!--square union, serifs --> +<!ENTITY ssetmn "∖" ><!--/smallsetminus B: sm reverse solidus --> +<!ENTITY sstarf "⋆" ><!--/star B: small star, filled --> +<!ENTITY subdot "⪽" ><!--subset, with dot --> +<!ENTITY sum "∑" ><!--/sum L: summation operator --> +<!ENTITY supdot "⪾" ><!--superset, with dot --> +<!ENTITY timesb "⊠" ><!--/boxtimes B: multiply sign in box --> +<!ENTITY timesbar "⨱" ><!--multiply sign, bar below --> +<!ENTITY timesd "⨰" ><!--times, dot --> +<!ENTITY tridot "◬" ><!--dot in triangle --> +<!ENTITY triminus "⨺" ><!--minus in triangle --> +<!ENTITY triplus "⨹" ><!--plus in triangle --> +<!ENTITY trisb "⧍" ><!--triangle, serifs at bottom --> +<!ENTITY tritime "⨻" ><!--multiply in triangle --> +<!ENTITY uplus "⊎" ><!--/uplus B: plus sign in union --> +<!ENTITY veebar "⊻" ><!--/veebar B: logical or, bar below --> +<!ENTITY wedbar "⩟" ><!--wedge, bar below --> +<!ENTITY wreath "≀" ><!--/wr B: wreath product --> +<!ENTITY xcap "⋂" ><!--/bigcap L: intersection operator --> +<!ENTITY xcirc "◯" ><!--/bigcirc B: large circle --> +<!ENTITY xcup "⋃" ><!--/bigcup L: union operator --> +<!ENTITY xdtri "▽" ><!--/bigtriangledown B: big dn tri, open --> +<!ENTITY xodot "⊙" ><!--/bigodot L: circle dot operator --> +<!ENTITY xoplus "⊕" ><!--/bigoplus L: circle plus operator --> +<!ENTITY xotime "⊗" ><!--/bigotimes L: circle times operator --> +<!ENTITY xsqcup "⊔" ><!--/bigsqcup L: square union operator --> +<!ENTITY xuplus "⊎" ><!--/biguplus L: --> +<!ENTITY xutri "△" ><!--/bigtriangleup B: big up tri, open --> +<!ENTITY xvee "⋁" ><!--/bigvee L: logical and operator --> +<!ENTITY xwedge "⋀" ><!--/bigwedge L: logical or operator --> + + +<!ENTITY % ent-isoamsc + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Delimiters for MathML 2.0//EN" + "iso9573-13/isoamsc.ent" > + +<!-- + File isoamsc.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY dlcorn "⌞" ><!--/llcorner O: lower left corner --> +<!ENTITY drcorn "⌟" ><!--/lrcorner C: lower right corner --> +<!ENTITY gtlPar "⦕" ><!--dbl left parenthesis, greater --> +<!ENTITY langd "⦑" ><!--left angle, dot --> +<!ENTITY lbrke "⦋" ><!--left bracket, equal --> +<!ENTITY lbrksld "⦏" ><!--left bracket, solidus bottom corner --> +<!ENTITY lbrkslu "⦍" ><!--left bracket, solidus top corner --> +<!ENTITY lceil "⌈" ><!--/lceil O: left ceiling --> +<!ENTITY lfloor "⌊" ><!--/lfloor O: left floor --> +<!ENTITY lmoust "⎰" ><!--/lmoustache --> +<!ENTITY lparlt "⦓" ><!--O: left parenthesis, lt --> +<!ENTITY ltrPar "⦖" ><!--dbl right parenthesis, less --> +<!ENTITY rangd "⦒" ><!--right angle, dot --> +<!ENTITY rbrke "⦌" ><!--right bracket, equal --> +<!ENTITY rbrksld "⦎" ><!--right bracket, solidus bottom corner --> +<!ENTITY rbrkslu "⦐" ><!--right bracket, solidus top corner --> +<!ENTITY rceil "⌉" ><!--/rceil C: right ceiling --> +<!ENTITY rfloor "⌋" ><!--/rfloor C: right floor --> +<!ENTITY rmoust "⎱" ><!--/rmoustache --> +<!ENTITY rpargt "⦔" ><!--C: right paren, gt --> +<!ENTITY ulcorn "⌜" ><!--/ulcorner O: upper left corner --> +<!ENTITY urcorn "⌝" ><!--/urcorner C: upper right corner --> + + +<!ENTITY % ent-isoamsn + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Negated Relations for MathML 2.0//EN" + "iso9573-13/isoamsn.ent" > + +<!-- + File isoamsn.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + References to the VARIANT SELECTOR 1 character (︀) + should match the uses listed in Unicode Technical Report 25. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY gnap "⪊" ><!--/gnapprox N: greater, not approximate --> +<!ENTITY gnE "≩" ><!--/gneqq N: greater, not dbl equals --> +<!ENTITY gne "≩" ><!--/gneq N: greater, not equals --> +<!ENTITY gnsim "⋧" ><!--/gnsim N: greater, not similar --> +<!ENTITY gvnE "≩︀" ><!--/gvertneqq N: gt, vert, not dbl eq --> +<!ENTITY lnap "⪉" ><!--/lnapprox N: less, not approximate --> +<!ENTITY lnE "≨" ><!--/lneqq N: less, not double equals --> +<!ENTITY lne "≨" ><!--/lneq N: less, not equals --> +<!ENTITY lnsim "⋦" ><!--/lnsim N: less, not similar --> +<!ENTITY lvnE "≨︀" ><!--/lvertneqq N: less, vert, not dbl eq --> +<!ENTITY nap "≉" ><!--/napprox N: not approximate --> +<!ENTITY napE "⩰̸" ><!--not approximately equal or equal to --> +<!ENTITY napid "≋̸" ><!--not approximately identical to --> +<!ENTITY ncong "≇" ><!--/ncong N: not congruent with --> +<!ENTITY ncongdot "⩭̸" ><!--not congruent, dot --> +<!ENTITY nequiv "≢" ><!--/nequiv N: not identical with --> +<!ENTITY ngE "⩾̸" ><!--/ngeqq N: not greater, dbl equals --> +<!ENTITY nge "≱" ><!--/ngeq N: not greater-than-or-equal --> +<!ENTITY nges "⩾̸" ><!--/ngeqslant N: not gt-or-eq, slanted --> +<!ENTITY nGg "⋙̸" ><!--not triple greater than --> +<!ENTITY ngsim "≵" ><!--not greater, similar --> +<!ENTITY nGt "≫⃒" ><!--not, vert, much greater than --> +<!ENTITY ngt "≯" ><!--/ngtr N: not greater-than --> +<!ENTITY nGtv "≫̸" ><!--not much greater than, variant --> +<!ENTITY nlE "⩽̸" ><!--/nleqq N: not less, dbl equals --> +<!ENTITY nle "≰" ><!--/nleq N: not less-than-or-equal --> +<!ENTITY nles "⩽̸" ><!--/nleqslant N: not less-or-eq, slant --> +<!ENTITY nLl "⋘̸" ><!--not triple less than --> +<!ENTITY nlsim "≴" ><!--not less, similar --> +<!ENTITY nLt "≪⃒" ><!--not, vert, much less than --> +<!ENTITY nlt "≮" ><!--/nless N: not less-than --> +<!ENTITY nltri "⋪" ><!--/ntriangleleft N: not left triangle --> +<!ENTITY nltrie "⋬" ><!--/ntrianglelefteq N: not l tri, eq --> +<!ENTITY nLtv "≪̸" ><!--not much less than, variant --> +<!ENTITY nmid "∤" ><!--/nmid --> +<!ENTITY npar "∦" ><!--/nparallel N: not parallel --> +<!ENTITY npr "⊀" ><!--/nprec N: not precedes --> +<!ENTITY nprcue "⋠" ><!--not curly precedes, eq --> +<!ENTITY npre "⪯̸" ><!--/npreceq N: not precedes, equals --> +<!ENTITY nrtri "⋫" ><!--/ntriangleright N: not rt triangle --> +<!ENTITY nrtrie "⋭" ><!--/ntrianglerighteq N: not r tri, eq --> +<!ENTITY nsc "⊁" ><!--/nsucc N: not succeeds --> +<!ENTITY nsccue "⋡" ><!--not succeeds, curly eq --> +<!ENTITY nsce "⪰̸" ><!--/nsucceq N: not succeeds, equals --> +<!ENTITY nsim "≁" ><!--/nsim N: not similar --> +<!ENTITY nsime "≄" ><!--/nsimeq N: not similar, equals --> +<!ENTITY nsmid "∤" ><!--/nshortmid --> +<!ENTITY nspar "∦" ><!--/nshortparallel N: not short par --> +<!ENTITY nsqsube "⋢" ><!--not, square subset, equals --> +<!ENTITY nsqsupe "⋣" ><!--not, square superset, equals --> +<!ENTITY nsub "⊄" ><!--not subset --> +<!ENTITY nsubE "⊈" ><!--/nsubseteqq N: not subset, dbl eq --> +<!ENTITY nsube "⊈" ><!--/nsubseteq N: not subset, equals --> +<!ENTITY nsup "⊅" ><!--not superset --> +<!ENTITY nsupE "⊉" ><!--/nsupseteqq N: not superset, dbl eq --> +<!ENTITY nsupe "⊉" ><!--/nsupseteq N: not superset, equals --> +<!ENTITY ntgl "≹" ><!--not greater, less --> +<!ENTITY ntlg "≸" ><!--not less, greater --> +<!ENTITY nvap "≍⃒" ><!--not, vert, approximate --> +<!ENTITY nVDash "⊯" ><!--/nVDash N: not dbl vert, dbl dash --> +<!ENTITY nVdash "⊮" ><!--/nVdash N: not dbl vertical, dash --> +<!ENTITY nvDash "⊭" ><!--/nvDash N: not vertical, dbl dash --> +<!ENTITY nvdash "⊬" ><!--/nvdash N: not vertical, dash --> +<!ENTITY nvge "⩾̸" ><!--not, vert, greater-than-or-equal --> +<!ENTITY nvgt "≯" ><!--not, vert, greater-than --> +<!ENTITY nvle "⩽̸" ><!--not, vert, less-than-or-equal --> +<!ENTITY nvlt "≮" ><!--not, vert, less-than --> +<!ENTITY nvltrie "⊴⃒" ><!--not, vert, left triangle, equals --> +<!ENTITY nvrtrie "⊵⃒" ><!--not, vert, right triangle, equals --> +<!ENTITY nvsim "∼⃒" ><!--not, vert, similar --> +<!ENTITY parsim "⫳" ><!--parallel, similar --> +<!ENTITY prnap "⋨" ><!--/precnapprox N: precedes, not approx --> +<!ENTITY prnE "⪵" ><!--/precneqq N: precedes, not dbl eq --> +<!ENTITY prnsim "⋨" ><!--/precnsim N: precedes, not similar --> +<!ENTITY rnmid "⫮" ><!--reverse /nmid --> +<!ENTITY scnap "⋩" ><!--/succnapprox N: succeeds, not approx --> +<!ENTITY scnE "⪶" ><!--/succneqq N: succeeds, not dbl eq --> +<!ENTITY scnsim "⋩" ><!--/succnsim N: succeeds, not similar --> +<!ENTITY simne "≆" ><!--similar, not equals --> +<!ENTITY solbar "⌿" ><!--solidus, bar through --> +<!ENTITY subnE "⊊" ><!--/subsetneqq N: subset, not dbl eq --> +<!ENTITY subne "⊊" ><!--/subsetneq N: subset, not equals --> +<!ENTITY supnE "⊋" ><!--/supsetneqq N: superset, not dbl eq --> +<!ENTITY supne "⊋" ><!--/supsetneq N: superset, not equals --> +<!ENTITY vnsub "⊄" ><!--/nsubset N: not subset, var --> +<!ENTITY vnsup "⊅" ><!--/nsupset N: not superset, var --> +<!ENTITY vsubnE "⊊︀" ><!--/varsubsetneqq N: subset not dbl eq, var --> +<!ENTITY vsubne "⊊︀" ><!--/varsubsetneq N: subset, not eq, var --> +<!ENTITY vsupnE "⊋︀" ><!--/varsupsetneqq N: super not dbl eq, var --> +<!ENTITY vsupne "⊋︀" ><!--/varsupsetneq N: superset, not eq, var --> + + +<!ENTITY % ent-isoamso + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Ordinary for MathML 2.0//EN" + "iso9573-13/isoamso.ent" > + +<!-- + File isoamso.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY ang "∠" ><!--/angle - angle --> +<!ENTITY ange "⦤" ><!--angle, equal --> +<!ENTITY angmsd "∡" ><!--/measuredangle - angle-measured --> +<!ENTITY angmsdaa "⦨" ><!--angle-measured, arrow, up, right --> +<!ENTITY angmsdab "⦩" ><!--angle-measured, arrow, up, left --> +<!ENTITY angmsdac "⦪" ><!--angle-measured, arrow, down, right --> +<!ENTITY angmsdad "⦫" ><!--angle-measured, arrow, down, left --> +<!ENTITY angmsdae "⦬" ><!--angle-measured, arrow, right, up --> +<!ENTITY angmsdaf "⦭" ><!--angle-measured, arrow, left, up --> +<!ENTITY angmsdag "⦮" ><!--angle-measured, arrow, right, down --> +<!ENTITY angmsdah "⦯" ><!--angle-measured, arrow, left, down --> +<!ENTITY angrtvb "⊾" ><!--right angle-measured --> +<!ENTITY angrtvbd "⦝" ><!--right angle-measured, dot --> +<!ENTITY bbrk "⎵" ><!--bottom square bracket --> +<!ENTITY bemptyv "⦰" ><!--reversed circle, slash --> +<!ENTITY beth "ℶ" ><!--/beth - beth, Hebrew --> +<!ENTITY boxbox "⧉" ><!--two joined squares --> +<!ENTITY bprime "‵" ><!--/backprime - reverse prime --> +<!ENTITY bsemi "⁏" ><!--reverse semi-colon --> +<!ENTITY cemptyv "⦲" ><!--circle, slash, small circle above --> +<!ENTITY cirE "⧃" ><!--circle, two horizontal stroked to the right --> +<!ENTITY cirscir "⧂" ><!--circle, small circle to the right --> +<!ENTITY comp "∁" ><!--/complement - complement sign --> +<!ENTITY daleth "ℸ" ><!--/daleth - daleth, Hebrew --> +<!ENTITY demptyv "⦱" ><!--circle, slash, bar above --> +<!ENTITY ell "ℓ" ><!--/ell - cursive small l --> +<!ENTITY empty "∅" ><!--/emptyset - zero, slash --> +<!ENTITY emptyv "∅" ><!--/varnothing - circle, slash --> +<!ENTITY gimel "ℷ" ><!--/gimel - gimel, Hebrew --> +<!ENTITY iiota "℩" ><!--inverted iota --> +<!ENTITY image "ℑ" ><!--/Im - imaginary --> +<!ENTITY imath "ı" ><!--/imath - small i, no dot --> +<!ENTITY jmath "j" ><!--/jmath - small j, no dot --> +<!ENTITY laemptyv "⦴" ><!--circle, slash, left arrow above --> +<!ENTITY lltri "◺" ><!--lower left triangle --> +<!ENTITY lrtri "⊿" ><!--lower right triangle --> +<!ENTITY mho "℧" ><!--/mho - conductance --> +<!ENTITY nang "∠⃒" ><!--not, vert, angle --> +<!ENTITY nexist "∄" ><!--/nexists - negated exists --> +<!ENTITY oS "Ⓢ" ><!--/circledS - capital S in circle --> +<!ENTITY planck "ℏ" ><!--/hbar - Planck's over 2pi --> +<!ENTITY plankv "ℏ" ><!--/hslash - variant Planck's over 2pi --> +<!ENTITY raemptyv "⦳" ><!--circle, slash, right arrow above --> +<!ENTITY range "⦥" ><!--reverse angle, equal --> +<!ENTITY real "ℜ" ><!--/Re - real --> +<!ENTITY tbrk "⎴" ><!--top square bracket --> +<!ENTITY ultri "◸" ><!--upper left triangle --> +<!ENTITY urtri "◹" ><!--upper right triangle --> +<!ENTITY vzigzag "⦚" ><!--vertical zig-zag line --> +<!ENTITY weierp "℘" ><!--/wp - Weierstrass p --> + + +<!ENTITY % ent-isoamsr + PUBLIC "-//W3C//ENTITIES Added Math Symbols: Relations for MathML 2.0//EN" + "iso9573-13/isoamsr.ent" > + +<!-- + File isoamsr.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + References to the VARIANT SELECTOR 1 character (︀) + should match the uses listed in Unicode Technical Report 25. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY apE "≊" ><!--approximately equal or equal to --> +<!ENTITY ape "≊" ><!--/approxeq R: approximate, equals --> +<!ENTITY apid "≋" ><!--approximately identical to --> +<!ENTITY asymp "≈" ><!--/asymp R: asymptotically equal to --> +<!ENTITY Barv "⫧" ><!--vert, dbl bar (over) --> +<!ENTITY bcong "≌" ><!--/backcong R: reverse congruent --> +<!ENTITY bepsi "϶" ><!--/backepsilon R: such that --> +<!ENTITY bowtie "⋈" ><!--/bowtie R: --> +<!ENTITY bsim "∽" ><!--/backsim R: reverse similar --> +<!ENTITY bsime "⋍" ><!--/backsimeq R: reverse similar, eq --> +<!ENTITY bsolhsub "\⊂" ><!--reverse solidus, subset --> +<!ENTITY bump "≎" ><!--/Bumpeq R: bumpy equals --> +<!ENTITY bumpE "⪮" ><!--bump, equals --> +<!ENTITY bumpe "≏" ><!--/bumpeq R: bumpy equals, equals --> +<!ENTITY cire "≗" ><!--/circeq R: circle, equals --> +<!ENTITY Colon "∷" ><!--/Colon, two colons --> +<!ENTITY Colone "⩴" ><!--double colon, equals --> +<!ENTITY colone "≔" ><!--/coloneq R: colon, equals --> +<!ENTITY congdot "⩭" ><!--congruent, dot --> +<!ENTITY csub "⫏" ><!--subset, closed --> +<!ENTITY csube "⫑" ><!--subset, closed, equals --> +<!ENTITY csup "⫐" ><!--superset, closed --> +<!ENTITY csupe "⫒" ><!--superset, closed, equals --> +<!ENTITY cuepr "⋞" ><!--/curlyeqprec R: curly eq, precedes --> +<!ENTITY cuesc "⋟" ><!--/curlyeqsucc R: curly eq, succeeds --> +<!ENTITY Dashv "⫤" ><!--dbl dash, vertical --> +<!ENTITY dashv "⊣" ><!--/dashv R: dash, vertical --> +<!ENTITY easter "≛" ><!--equal, asterisk above --> +<!ENTITY ecir "≖" ><!--/eqcirc R: circle on equals sign --> +<!ENTITY ecolon "≕" ><!--/eqcolon R: equals, colon --> +<!ENTITY eDDot "⩷" ><!--/ddotseq R: equal with four dots --> +<!ENTITY eDot "≑" ><!--/doteqdot /Doteq R: eq, even dots --> +<!ENTITY efDot "≒" ><!--/fallingdotseq R: eq, falling dots --> +<!ENTITY eg "⪚" ><!--equal-or-greater --> +<!ENTITY egs "⋝" ><!--/eqslantgtr R: equal-or-gtr, slanted --> +<!ENTITY egsdot "⪘" ><!--equal-or-greater, slanted, dot inside --> +<!ENTITY el "⪙" ><!--equal-or-less --> +<!ENTITY els "⋜" ><!--/eqslantless R: eq-or-less, slanted --> +<!ENTITY elsdot "⪗" ><!--equal-or-less, slanted, dot inside --> +<!ENTITY equest "≟" ><!--/questeq R: equal with questionmark --> +<!ENTITY equivDD "⩸" ><!--equivalent, four dots above --> +<!ENTITY erDot "≓" ><!--/risingdotseq R: eq, rising dots --> +<!ENTITY esdot "≐" ><!--/doteq R: equals, single dot above --> +<!ENTITY Esim "⩳" ><!--equal, similar --> +<!ENTITY esim "≂" ><!--/esim R: equals, similar --> +<!ENTITY fork "⋔" ><!--/pitchfork R: pitchfork --> +<!ENTITY forkv "⫙" ><!--fork, variant --> +<!ENTITY frown "⌢" ><!--/frown R: down curve --> +<!ENTITY gap "≳" ><!--/gtrapprox R: greater, approximate --> +<!ENTITY gE "≧" ><!--/geqq R: greater, double equals --> +<!ENTITY gEl "⋛" ><!--/gtreqqless R: gt, dbl equals, less --> +<!ENTITY gel "⋛" ><!--/gtreqless R: greater, equals, less --> +<!ENTITY ges "⩾" ><!--/geqslant R: gt-or-equal, slanted --> +<!ENTITY gescc "⪩" ><!--greater than, closed by curve, equal, slanted --> +<!ENTITY gesdot "⪀" ><!--greater-than-or-equal, slanted, dot inside --> +<!ENTITY gesdoto "⪂" ><!--greater-than-or-equal, slanted, dot above --> +<!ENTITY gesdotol "⪄" ><!--greater-than-or-equal, slanted, dot above left --> +<!ENTITY gesl "⋛︀" ><!--greater, equal, slanted, less --> +<!ENTITY gesles "⪔" ><!--greater, equal, slanted, less, equal, slanted --> +<!ENTITY Gg "⋙" ><!--/ggg /Gg /gggtr R: triple gtr-than --> +<!ENTITY gl "≷" ><!--/gtrless R: greater, less --> +<!ENTITY gla "⪥" ><!--greater, less, apart --> +<!ENTITY glE "⪒" ><!--greater, less, equal --> +<!ENTITY glj "⪤" ><!--greater, less, overlapping --> +<!ENTITY gsim "≳" ><!--/gtrsim R: greater, similar --> +<!ENTITY gsime "⪎" ><!--greater, similar, equal --> +<!ENTITY gsiml "⪐" ><!--greater, similar, less --> +<!ENTITY Gt "≫" ><!--/gg R: dbl greater-than sign --> +<!ENTITY gtcc "⪧" ><!--greater than, closed by curve --> +<!ENTITY gtcir "⩺" ><!--greater than, circle inside --> +<!ENTITY gtdot "⋗" ><!--/gtrdot R: greater than, with dot --> +<!ENTITY gtquest "⩼" ><!--greater than, questionmark above --> +<!ENTITY gtrarr "⥸" ><!--greater than, right arrow --> +<!ENTITY homtht "∻" ><!--homothetic --> +<!ENTITY lap "≲" ><!--/lessapprox R: less, approximate --> +<!ENTITY lat "⪫" ><!--larger than --> +<!ENTITY late "⪭" ><!--larger than or equal --> +<!ENTITY lates "⪭︀" ><!--larger than or equal, slanted --> +<!ENTITY lE "≦" ><!--/leqq R: less, double equals --> +<!ENTITY lEg "⋚" ><!--/lesseqqgtr R: less, dbl eq, greater --> +<!ENTITY leg "⋚" ><!--/lesseqgtr R: less, eq, greater --> +<!ENTITY les "⩽" ><!--/leqslant R: less-than-or-eq, slant --> +<!ENTITY lescc "⪨" ><!--less than, closed by curve, equal, slanted --> +<!ENTITY lesdot "⩿" ><!--less-than-or-equal, slanted, dot inside --> +<!ENTITY lesdoto "⪁" ><!--less-than-or-equal, slanted, dot above --> +<!ENTITY lesdotor "⪃" ><!--less-than-or-equal, slanted, dot above right --> +<!ENTITY lesg "⋚︀" ><!--less, equal, slanted, greater --> +<!ENTITY lesges "⪓" ><!--less, equal, slanted, greater, equal, slanted --> +<!ENTITY lg "≶" ><!--/lessgtr R: less, greater --> +<!ENTITY lgE "⪑" ><!--less, greater, equal --> +<!ENTITY Ll "⋘" ><!--/Ll /lll /llless R: triple less-than --> +<!ENTITY lsim "≲" ><!--/lesssim R: less, similar --> +<!ENTITY lsime "⪍" ><!--less, similar, equal --> +<!ENTITY lsimg "⪏" ><!--less, similar, greater --> +<!ENTITY Lt "≪" ><!--/ll R: double less-than sign --> +<!ENTITY ltcc "⪦" ><!--less than, closed by curve --> +<!ENTITY ltcir "⩹" ><!--less than, circle inside --> +<!ENTITY ltdot "⋖" ><!--/lessdot R: less than, with dot --> +<!ENTITY ltlarr "⥶" ><!--less than, left arrow --> +<!ENTITY ltquest "⩻" ><!--less than, questionmark above --> +<!ENTITY ltrie "⊴" ><!--/trianglelefteq R: left triangle, eq --> +<!ENTITY mcomma "⨩" ><!--minus, comma above --> +<!ENTITY mDDot "∺" ><!--minus with four dots, geometric properties --> +<!ENTITY mid "∣" ><!--/mid R: --> +<!ENTITY mlcp "⫛" ><!--/mlcp --> +<!ENTITY models "⊧" ><!--/models R: --> +<!ENTITY mstpos "∾" ><!--most positive --> +<!ENTITY Pr "⪻" ><!--dbl precedes --> +<!ENTITY pr "≺" ><!--/prec R: precedes --> +<!ENTITY prap "≾" ><!--/precapprox R: precedes, approximate --> +<!ENTITY prcue "≼" ><!--/preccurlyeq R: precedes, curly eq --> +<!ENTITY prE "⪯" ><!--precedes, dbl equals --> +<!ENTITY pre "⪯" ><!--/preceq R: precedes, equals --> +<!ENTITY prsim "≾" ><!--/precsim R: precedes, similar --> +<!ENTITY prurel "⊰" ><!--element precedes under relation --> +<!ENTITY ratio "∶" ><!--/ratio --> +<!ENTITY rtrie "⊵" ><!--/trianglerighteq R: right tri, eq --> +<!ENTITY rtriltri "⧎" ><!--right triangle above left triangle --> +<!ENTITY Sc "⪼" ><!--dbl succeeds --> +<!ENTITY sc "≻" ><!--/succ R: succeeds --> +<!ENTITY scap "≿" ><!--/succapprox R: succeeds, approximate --> +<!ENTITY sccue "≽" ><!--/succcurlyeq R: succeeds, curly eq --> +<!ENTITY scE "≾" ><!--succeeds, dbl equals --> +<!ENTITY sce "≽" ><!--/succeq R: succeeds, equals --> +<!ENTITY scsim "≿" ><!--/succsim R: succeeds, similar --> +<!ENTITY sdote "⩦" ><!--equal, dot below --> +<!ENTITY simg "⪞" ><!--similar, greater --> +<!ENTITY simgE "⪠" ><!--similar, greater, equal --> +<!ENTITY siml "⪝" ><!--similar, less --> +<!ENTITY simlE "⪟" ><!--similar, less, equal --> +<!ENTITY smid "∣" ><!--/shortmid R: --> +<!ENTITY smile "⌣" ><!--/smile R: up curve --> +<!ENTITY smt "⪪" ><!--smaller than --> +<!ENTITY smte "⪬" ><!--smaller than or equal --> +<!ENTITY smtes "⪬︀" ><!--smaller than or equal, slanted --> +<!ENTITY spar "∥" ><!--/shortparallel R: short parallel --> +<!ENTITY sqsub "⊏" ><!--/sqsubset R: square subset --> +<!ENTITY sqsube "⊑" ><!--/sqsubseteq R: square subset, equals --> +<!ENTITY sqsup "⊐" ><!--/sqsupset R: square superset --> +<!ENTITY sqsupe "⊒" ><!--/sqsupseteq R: square superset, eq --> +<!ENTITY Sub "⋐" ><!--/Subset R: double subset --> +<!ENTITY subE "⊆" ><!--/subseteqq R: subset, dbl equals --> +<!ENTITY subedot "⫃" ><!--subset, equals, dot --> +<!ENTITY submult "⫁" ><!--subset, multiply --> +<!ENTITY subplus "⪿" ><!--subset, plus --> +<!ENTITY subrarr "⥹" ><!--subset, right arrow --> +<!ENTITY subsim "⫇" ><!--subset, similar --> +<!ENTITY subsub "⫕" ><!--subset above subset --> +<!ENTITY subsup "⫓" ><!--subset above superset --> +<!ENTITY Sup "⋑" ><!--/Supset R: dbl superset --> +<!ENTITY supdsub "⫘" ><!--superset, subset, dash joining them --> +<!ENTITY supE "⊇" ><!--/supseteqq R: superset, dbl equals --> +<!ENTITY supedot "⫄" ><!--superset, equals, dot --> +<!ENTITY suphsol "⊅" ><!--superset, solidus --> +<!ENTITY suphsub "⫗" ><!--superset, subset --> +<!ENTITY suplarr "⥻" ><!--superset, left arrow --> +<!ENTITY supmult "⫂" ><!--superset, multiply --> +<!ENTITY supplus "⫀" ><!--superset, plus --> +<!ENTITY supsim "⫈" ><!--superset, similar --> +<!ENTITY supsub "⫔" ><!--superset above subset --> +<!ENTITY supsup "⫖" ><!--superset above superset --> +<!ENTITY thkap "≈" ><!--/thickapprox R: thick approximate --> +<!ENTITY topfork "⫚" ><!--fork with top --> +<!ENTITY trie "≜" ><!--/triangleq R: triangle, equals --> +<!ENTITY twixt "≬" ><!--/between R: between --> +<!ENTITY Vbar "⫫" ><!--dbl vert, bar (under) --> +<!ENTITY vBar "⫨" ><!--vert, dbl bar (under) --> +<!ENTITY vBarv "⫩" ><!--dbl bar, vert over and under --> +<!ENTITY VDash "⊫" ><!--dbl vert, dbl dash --> +<!ENTITY Vdash "⊩" ><!--/Vdash R: dbl vertical, dash --> +<!ENTITY vDash "⊨" ><!--/vDash R: vertical, dbl dash --> +<!ENTITY vdash "⊢" ><!--/vdash R: vertical, dash --> +<!ENTITY Vdashl "⫦" ><!--vertical, dash (long) --> +<!ENTITY vltri "⊲" ><!--/vartriangleleft R: l tri, open, var --> +<!ENTITY vprop "∝" ><!--/varpropto R: proportional, variant --> +<!ENTITY vrtri "⊳" ><!--/vartriangleright R: r tri, open, var --> +<!ENTITY Vvdash "⊪" ><!--/Vvdash R: triple vertical, dash --> + + +<!ENTITY % ent-isogrk3 + PUBLIC "-//W3C//ENTITIES Greek Symbols for MathML 2.0//EN" + "iso9573-13/isogrk3.ent" > + +<!-- + File isogrk3.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY alpha "α" ><!--/alpha small alpha, Greek --> +<!ENTITY beta "β" ><!--/beta small beta, Greek --> +<!ENTITY chi "χ" ><!--/chi small chi, Greek --> +<!ENTITY Delta "Δ" ><!--/Delta capital Delta, Greek --> +<!ENTITY delta "δ" ><!--/delta small delta, Greek --> +<!ENTITY epsi "ε" ><!--/straightepsilon, small epsilon, Greek --> +<!ENTITY epsiv "ɛ" ><!--/varepsilon --> +<!ENTITY eta "η" ><!--/eta small eta, Greek --> +<!ENTITY Gamma "Γ" ><!--/Gamma capital Gamma, Greek --> +<!ENTITY gamma "γ" ><!--/gamma small gamma, Greek --> +<!ENTITY Gammad "Ϝ" ><!--capital digamma --> +<!ENTITY gammad "Ϝ" ><!--/digamma --> +<!ENTITY iota "ι" ><!--/iota small iota, Greek --> +<!ENTITY kappa "κ" ><!--/kappa small kappa, Greek --> +<!ENTITY kappav "ϰ" ><!--/varkappa --> +<!ENTITY Lambda "Λ" ><!--/Lambda capital Lambda, Greek --> +<!ENTITY lambda "λ" ><!--/lambda small lambda, Greek --> +<!ENTITY mu "μ" ><!--/mu small mu, Greek --> +<!ENTITY nu "ν" ><!--/nu small nu, Greek --> +<!ENTITY Omega "Ω" ><!--/Omega capital Omega, Greek --> +<!ENTITY omega "ω" ><!--/omega small omega, Greek --> +<!ENTITY Phi "Φ" ><!--/Phi capital Phi, Greek --> +<!ENTITY phi "ϕ" ><!--/straightphi - small phi, Greek --> +<!ENTITY phiv "φ" ><!--/varphi - curly or open phi --> +<!ENTITY Pi "Π" ><!--/Pi capital Pi, Greek --> +<!ENTITY pi "π" ><!--/pi small pi, Greek --> +<!ENTITY piv "ϖ" ><!--/varpi --> +<!ENTITY Psi "Ψ" ><!--/Psi capital Psi, Greek --> +<!ENTITY psi "ψ" ><!--/psi small psi, Greek --> +<!ENTITY rho "ρ" ><!--/rho small rho, Greek --> +<!ENTITY rhov "ϱ" ><!--/varrho --> +<!ENTITY Sigma "Σ" ><!--/Sigma capital Sigma, Greek --> +<!ENTITY sigma "σ" ><!--/sigma small sigma, Greek --> +<!ENTITY sigmav "ς" ><!--/varsigma --> +<!ENTITY tau "τ" ><!--/tau small tau, Greek --> +<!ENTITY Theta "Θ" ><!--/Theta capital Theta, Greek --> +<!ENTITY theta "θ" ><!--/theta straight theta, small theta, Greek --> +<!ENTITY thetav "ϑ" ><!--/vartheta - curly or open theta --> +<!ENTITY Upsi "ϒ" ><!--/Upsilon capital Upsilon, Greek --> +<!ENTITY upsi "υ" ><!--/upsilon small upsilon, Greek --> +<!ENTITY Xi "Ξ" ><!--/Xi capital Xi, Greek --> +<!ENTITY xi "ξ" ><!--/xi small xi, Greek --> +<!ENTITY zeta "ζ" ><!--/zeta small zeta, Greek --> + + +<!ENTITY % ent-isomfrk + PUBLIC "-//W3C//ENTITIES Math Alphabets: Fraktur for MathML 2.0//EN" + "iso9573-13/isomfrk.ent" > + +<!-- + File isomfrk.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY % plane1D "&#38;#x1D"> + +<!ENTITY Afr "%plane1D;504;" ><!--/frak A, upper case a --> +<!ENTITY afr "%plane1D;51E;" ><!--/frak a, lower case a --> +<!ENTITY Bfr "%plane1D;505;" ><!--/frak B, upper case b --> +<!ENTITY bfr "%plane1D;51F;" ><!--/frak b, lower case b --> +<!ENTITY Cfr "ℭ" ><!--/frak C, upper case c --> +<!ENTITY cfr "%plane1D;520;" ><!--/frak c, lower case c --> +<!ENTITY Dfr "%plane1D;507;" ><!--/frak D, upper case d --> +<!ENTITY dfr "%plane1D;521;" ><!--/frak d, lower case d --> +<!ENTITY Efr "%plane1D;508;" ><!--/frak E, upper case e --> +<!ENTITY efr "%plane1D;522;" ><!--/frak e, lower case e --> +<!ENTITY Ffr "%plane1D;509;" ><!--/frak F, upper case f --> +<!ENTITY ffr "%plane1D;523;" ><!--/frak f, lower case f --> +<!ENTITY Gfr "%plane1D;50A;" ><!--/frak G, upper case g --> +<!ENTITY gfr "%plane1D;524;" ><!--/frak g, lower case g --> +<!ENTITY Hfr "ℌ" ><!--/frak H, upper case h --> +<!ENTITY hfr "%plane1D;525;" ><!--/frak h, lower case h --> +<!ENTITY Ifr "ℑ" ><!--/frak I, upper case i --> +<!ENTITY ifr "%plane1D;526;" ><!--/frak i, lower case i --> +<!ENTITY Jfr "%plane1D;50D;" ><!--/frak J, upper case j --> +<!ENTITY jfr "%plane1D;527;" ><!--/frak j, lower case j --> +<!ENTITY Kfr "%plane1D;50E;" ><!--/frak K, upper case k --> +<!ENTITY kfr "%plane1D;528;" ><!--/frak k, lower case k --> +<!ENTITY Lfr "%plane1D;50F;" ><!--/frak L, upper case l --> +<!ENTITY lfr "%plane1D;529;" ><!--/frak l, lower case l --> +<!ENTITY Mfr "%plane1D;510;" ><!--/frak M, upper case m --> +<!ENTITY mfr "%plane1D;52A;" ><!--/frak m, lower case m --> +<!ENTITY Nfr "%plane1D;511;" ><!--/frak N, upper case n --> +<!ENTITY nfr "%plane1D;52B;" ><!--/frak n, lower case n --> +<!ENTITY Ofr "%plane1D;512;" ><!--/frak O, upper case o --> +<!ENTITY ofr "%plane1D;52C;" ><!--/frak o, lower case o --> +<!ENTITY Pfr "%plane1D;513;" ><!--/frak P, upper case p --> +<!ENTITY pfr "%plane1D;52D;" ><!--/frak p, lower case p --> +<!ENTITY Qfr "%plane1D;514;" ><!--/frak Q, upper case q --> +<!ENTITY qfr "%plane1D;52E;" ><!--/frak q, lower case q --> +<!ENTITY Rfr "ℜ" ><!--/frak R, upper case r --> +<!ENTITY rfr "%plane1D;52F;" ><!--/frak r, lower case r --> +<!ENTITY Sfr "%plane1D;516;" ><!--/frak S, upper case s --> +<!ENTITY sfr "%plane1D;530;" ><!--/frak s, lower case s --> +<!ENTITY Tfr "%plane1D;517;" ><!--/frak T, upper case t --> +<!ENTITY tfr "%plane1D;531;" ><!--/frak t, lower case t --> +<!ENTITY Ufr "%plane1D;518;" ><!--/frak U, upper case u --> +<!ENTITY ufr "%plane1D;532;" ><!--/frak u, lower case u --> +<!ENTITY Vfr "%plane1D;519;" ><!--/frak V, upper case v --> +<!ENTITY vfr "%plane1D;533;" ><!--/frak v, lower case v --> +<!ENTITY Wfr "%plane1D;51A;" ><!--/frak W, upper case w --> +<!ENTITY wfr "%plane1D;534;" ><!--/frak w, lower case w --> +<!ENTITY Xfr "%plane1D;51B;" ><!--/frak X, upper case x --> +<!ENTITY xfr "%plane1D;535;" ><!--/frak x, lower case x --> +<!ENTITY Yfr "%plane1D;51C;" ><!--/frak Y, upper case y --> +<!ENTITY yfr "%plane1D;536;" ><!--/frak y, lower case y --> +<!ENTITY Zfr "ℨ" ><!--/frak Z, upper case z --> +<!ENTITY zfr "%plane1D;537;" ><!--/frak z, lower case z --> + + +<!ENTITY % ent-isomopf + PUBLIC "-//W3C//ENTITIES Math Alphabets: Open Face for MathML 2.0//EN" + "iso9573-13/isomopf.ent" > + +<!-- + File isomopf.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY % plane1D "&#38;#x1D"> + +<!ENTITY Aopf "%plane1D;538;" ><!--/Bbb A, open face A --> +<!ENTITY Bopf "%plane1D;539;" ><!--/Bbb B, open face B --> +<!ENTITY Copf "ℂ" ><!--/Bbb C, open face C --> +<!ENTITY Dopf "%plane1D;53B;" ><!--/Bbb D, open face D --> +<!ENTITY Eopf "%plane1D;53C;" ><!--/Bbb E, open face E --> +<!ENTITY Fopf "%plane1D;53D;" ><!--/Bbb F, open face F --> +<!ENTITY Gopf "%plane1D;53E;" ><!--/Bbb G, open face G --> +<!ENTITY Hopf "ℍ" ><!--/Bbb H, open face H --> +<!ENTITY Iopf "%plane1D;540;" ><!--/Bbb I, open face I --> +<!ENTITY Jopf "%plane1D;541;" ><!--/Bbb J, open face J --> +<!ENTITY Kopf "%plane1D;542;" ><!--/Bbb K, open face K --> +<!ENTITY Lopf "%plane1D;543;" ><!--/Bbb L, open face L --> +<!ENTITY Mopf "%plane1D;544;" ><!--/Bbb M, open face M --> +<!ENTITY Nopf "ℕ" ><!--/Bbb N, open face N --> +<!ENTITY Oopf "%plane1D;546;" ><!--/Bbb O, open face O --> +<!ENTITY Popf "ℙ" ><!--/Bbb P, open face P --> +<!ENTITY Qopf "ℚ" ><!--/Bbb Q, open face Q --> +<!ENTITY Ropf "ℝ" ><!--/Bbb R, open face R --> +<!ENTITY Sopf "%plane1D;54A;" ><!--/Bbb S, open face S --> +<!ENTITY Topf "%plane1D;54B;" ><!--/Bbb T, open face T --> +<!ENTITY Uopf "%plane1D;54C;" ><!--/Bbb U, open face U --> +<!ENTITY Vopf "%plane1D;54D;" ><!--/Bbb V, open face V --> +<!ENTITY Wopf "%plane1D;54E;" ><!--/Bbb W, open face W --> +<!ENTITY Xopf "%plane1D;54F;" ><!--/Bbb X, open face X --> +<!ENTITY Yopf "%plane1D;550;" ><!--/Bbb Y, open face Y --> +<!ENTITY Zopf "ℤ" ><!--/Bbb Z, open face Z --> + + +<!ENTITY % ent-isomscr + PUBLIC "-//W3C//ENTITIES Math Alphabets: Script for MathML 2.0//EN" + "iso9573-13/isomscr.ent" > + +<!-- + File isomscr.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY % plane1D "&#38;#x1D"> + +<!ENTITY Ascr "%plane1D;49C;" ><!--/scr A, script letter A --> +<!ENTITY ascr "%plane1D;4B6;" ><!--/scr a, script letter a --> +<!ENTITY Bscr "ℬ" ><!--/scr B, script letter B --> +<!ENTITY bscr "%plane1D;4B7;" ><!--/scr b, script letter b --> +<!ENTITY Cscr "%plane1D;49E;" ><!--/scr C, script letter C --> +<!ENTITY cscr "%plane1D;4B8;" ><!--/scr c, script letter c --> +<!ENTITY Dscr "%plane1D;49F;" ><!--/scr D, script letter D --> +<!ENTITY dscr "%plane1D;4B9;" ><!--/scr d, script letter d --> +<!ENTITY Escr "ℰ" ><!--/scr E, script letter E --> +<!ENTITY escr "ℯ" ><!--/scr e, script letter e --> +<!ENTITY Fscr "ℱ" ><!--/scr F, script letter F --> +<!ENTITY fscr "%plane1D;4BB;" ><!--/scr f, script letter f --> +<!ENTITY Gscr "%plane1D;4A2;" ><!--/scr G, script letter G --> +<!ENTITY gscr "ℊ" ><!--/scr g, script letter g --> +<!ENTITY Hscr "ℋ" ><!--/scr H, script letter H --> +<!ENTITY hscr "%plane1D;4BD;" ><!--/scr h, script letter h --> +<!ENTITY Iscr "ℐ" ><!--/scr I, script letter I --> +<!ENTITY iscr "%plane1D;4BE;" ><!--/scr i, script letter i --> +<!ENTITY Jscr "%plane1D;4A5;" ><!--/scr J, script letter J --> +<!ENTITY jscr "%plane1D;4BF;" ><!--/scr j, script letter j --> +<!ENTITY Kscr "%plane1D;4A6;" ><!--/scr K, script letter K --> +<!ENTITY kscr "%plane1D;4C0;" ><!--/scr k, script letter k --> +<!ENTITY Lscr "ℒ" ><!--/scr L, script letter L --> +<!ENTITY lscr "ℓ" ><!--/scr l, script letter l --> +<!ENTITY Mscr "ℳ" ><!--/scr M, script letter M --> +<!ENTITY mscr "%plane1D;4C2;" ><!--/scr m, script letter m --> +<!ENTITY Nscr "%plane1D;4A9;" ><!--/scr N, script letter N --> +<!ENTITY nscr "%plane1D;4C3;" ><!--/scr n, script letter n --> +<!ENTITY Oscr "%plane1D;4AA;" ><!--/scr O, script letter O --> +<!ENTITY oscr "ℴ" ><!--/scr o, script letter o --> +<!ENTITY Pscr "%plane1D;4AB;" ><!--/scr P, script letter P --> +<!ENTITY pscr "%plane1D;4C5;" ><!--/scr p, script letter p --> +<!ENTITY Qscr "%plane1D;4AC;" ><!--/scr Q, script letter Q --> +<!ENTITY qscr "%plane1D;4C6;" ><!--/scr q, script letter q --> +<!ENTITY Rscr "ℛ" ><!--/scr R, script letter R --> +<!ENTITY rscr "%plane1D;4C7;" ><!--/scr r, script letter r --> +<!ENTITY Sscr "%plane1D;4AE;" ><!--/scr S, script letter S --> +<!ENTITY sscr "%plane1D;4C8;" ><!--/scr s, script letter s --> +<!ENTITY Tscr "%plane1D;4AF;" ><!--/scr T, script letter T --> +<!ENTITY tscr "%plane1D;4C9;" ><!--/scr t, script letter t --> +<!ENTITY Uscr "%plane1D;4B0;" ><!--/scr U, script letter U --> +<!ENTITY uscr "%plane1D;4CA;" ><!--/scr u, script letter u --> +<!ENTITY Vscr "%plane1D;4B1;" ><!--/scr V, script letter V --> +<!ENTITY vscr "%plane1D;4CB;" ><!--/scr v, script letter v --> +<!ENTITY Wscr "%plane1D;4B2;" ><!--/scr W, script letter W --> +<!ENTITY wscr "%plane1D;4CC;" ><!--/scr w, script letter w --> +<!ENTITY Xscr "%plane1D;4B3;" ><!--/scr X, script letter X --> +<!ENTITY xscr "%plane1D;4CD;" ><!--/scr x, script letter x --> +<!ENTITY Yscr "%plane1D;4B4;" ><!--/scr Y, script letter Y --> +<!ENTITY yscr "%plane1D;4CE;" ><!--/scr y, script letter y --> +<!ENTITY Zscr "%plane1D;4B5;" ><!--/scr Z, script letter Z --> +<!ENTITY zscr "%plane1D;4CF;" ><!--/scr z, script letter z --> + + +<!ENTITY % ent-isotech + PUBLIC "-//W3C//ENTITIES General Technical for MathML 2.0//EN" + "iso9573-13/isotech.ent" > + +<!-- + File isotech.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + References to the VARIANT SELECTOR 1 character (︀) + should match the uses listed in Unicode Technical Report 25. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1991 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY % plane1D "&#38;#x1D"> + +<!ENTITY acd "∿" ><!--ac current --> +<!ENTITY aleph "ℵ" ><!--/aleph aleph, Hebrew --> +<!ENTITY And "⩓" ><!--dbl logical and --> +<!ENTITY and "∧" ><!--/wedge /land B: logical and --> +<!ENTITY andand "⩕" ><!--two logical and --> +<!ENTITY andd "⩜" ><!--and, horizontal dash --> +<!ENTITY andslope "⩘" ><!--sloping large and --> +<!ENTITY andv "⩚" ><!--and with middle stem --> +<!ENTITY angrt "∟" ><!--right (90 degree) angle --> +<!ENTITY angsph "∢" ><!--/sphericalangle angle-spherical --> +<!ENTITY angst "Å" ><!--Angstrom capital A, ring --> +<!ENTITY ap "≈" ><!--/approx R: approximate --> +<!ENTITY apacir "⩯" ><!--approximate, circumflex accent --> +<!ENTITY awconint "∳" ><!--contour integral, anti-clockwise --> +<!ENTITY awint "⨑" ><!--anti clock-wise integration --> +<!ENTITY becaus "∵" ><!--/because R: because --> +<!ENTITY bernou "ℬ" ><!--Bernoulli function (script capital B) --> +<!ENTITY bne "=⃥" ><!--reverse not equal --> +<!ENTITY bnequiv "≡⃥" ><!--reverse not equivalent --> +<!ENTITY bNot "⫭" ><!--reverse not with two horizontal strokes --> +<!ENTITY bnot "⌐" ><!--reverse not --> +<!ENTITY bottom "⊥" ><!--/bot bottom --> +<!ENTITY cap "∩" ><!--/cap B: intersection --> +<!ENTITY Cconint "∰" ><!--triple contour integral operator --> +<!ENTITY cirfnint "⨐" ><!--circulation function --> +<!ENTITY compfn "∘" ><!--/circ B: composite function (small circle) --> +<!ENTITY cong "≅" ><!--/cong R: congruent with --> +<!ENTITY Conint "∯" ><!--double contour integral operator --> +<!ENTITY conint "∮" ><!--/oint L: contour integral operator --> +<!ENTITY ctdot "⋯" ><!--/cdots, three dots, centered --> +<!ENTITY cup "∪" ><!--/cup B: union or logical sum --> +<!ENTITY cwconint "∲" ><!--contour integral, clockwise --> +<!ENTITY cwint "∱" ><!--clockwise integral --> +<!ENTITY cylcty "⌭" ><!--cylindricity --> +<!ENTITY disin "⋲" ><!--set membership, long horizontal stroke --> +<!ENTITY Dot "¨" ><!--dieresis or umlaut mark --> +<!ENTITY DotDot "⃜" ><!--four dots above --> +<!ENTITY dsol "⧶" ><!--solidus, bar above --> +<!ENTITY dtdot "⋱" ><!--/ddots, three dots, descending --> +<!ENTITY dwangle "⦦" ><!--large downward pointing angle --> +<!ENTITY epar "⋕" ><!--parallel, equal; equal or parallel --> +<!ENTITY eparsl "⧣" ><!--parallel, slanted, equal; homothetically congruent to --> +<!ENTITY equiv "≡" ><!--/equiv R: identical with --> +<!ENTITY eqvparsl "⧥" ><!--equivalent, equal; congruent and parallel --> +<!ENTITY exist "∃" ><!--/exists at least one exists --> +<!ENTITY fnof "ƒ" ><!--function of (italic small f) --> +<!ENTITY forall "∀" ><!--/forall for all --> +<!ENTITY fpartint "⨍" ><!--finite part integral --> +<!ENTITY ge "≥" ><!--/geq /ge R: greater-than-or-equal --> +<!ENTITY hamilt "ℋ" ><!--Hamiltonian (script capital H) --> +<!ENTITY iff "⇔" ><!--/iff if and only if --> +<!ENTITY iinfin "⧜" ><!--infinity sign, incomplete --> +<!ENTITY imped "%plane1D;543;" ><!--impedance --> +<!ENTITY infin "∞" ><!--/infty infinity --> +<!ENTITY Int "∬" ><!--double integral operator --> +<!ENTITY int "∫" ><!--/int L: integral operator --> +<!ENTITY intlarhk "⨗" ><!--integral, left arrow with hook --> +<!ENTITY isin "∈" ><!--/in R: set membership --> +<!ENTITY isindot "⋵" ><!--set membership, dot above --> +<!ENTITY isinE "⋹" ><!--set membership, two horizontal strokes --> +<!ENTITY isins "⋴" ><!--set membership, vertical bar on horizontal stroke --> +<!ENTITY isinsv "⋳" ><!--large set membership, vertical bar on horizontal stroke --> +<!ENTITY isinv "∈" ><!--set membership, variant --> +<!ENTITY lagran "ℒ" ><!--Lagrangian (script capital L) --> +<!ENTITY Lang "《" ><!--left angle bracket, double --> +<!ENTITY lang "〈" ><!--/langle O: left angle bracket --> +<!ENTITY lArr "⇐" ><!--/Leftarrow A: is implied by --> +<!ENTITY lbbrk "〔" ><!--left broken bracket --> +<!ENTITY le "≤" ><!--/leq /le R: less-than-or-equal --> +<!ENTITY loang "⦉" ><!--left open angular bracket --> +<!ENTITY lobrk "〚" ><!--left open bracket --> +<!ENTITY lopar "⦅" ><!--left open parenthesis --> +<!ENTITY lowast "∗" ><!--low asterisk --> +<!ENTITY minus "−" ><!--B: minus sign --> +<!ENTITY mnplus "∓" ><!--/mp B: minus-or-plus sign --> +<!ENTITY nabla "∇" ><!--/nabla del, Hamilton operator --> +<!ENTITY ne "≠" ><!--/ne /neq R: not equal --> +<!ENTITY nedot "≠̇" ><!--not equal, dot --> +<!ENTITY nhpar "⫲" ><!--not, horizontal, parallel --> +<!ENTITY ni "∋" ><!--/ni /owns R: contains --> +<!ENTITY nis "⋼" ><!--contains, vertical bar on horizontal stroke --> +<!ENTITY nisd "⋺" ><!--contains, long horizontal stroke --> +<!ENTITY niv "∋" ><!--contains, variant --> +<!ENTITY Not "⫬" ><!--not with two horizontal strokes --> +<!ENTITY notin "∉" ><!--/notin N: negated set membership --> +<!ENTITY notindot "∉̇" ><!--negated set membership, dot above --> +<!ENTITY notinva "∉" ><!--negated set membership, variant --> +<!ENTITY notinvb "⋷" ><!--negated set membership, variant --> +<!ENTITY notinvc "⋶" ><!--negated set membership, variant --> +<!ENTITY notni "∌" ><!--negated contains --> +<!ENTITY notniva "∌" ><!--negated contains, variant --> +<!ENTITY notnivb "⋾" ><!--contains, variant --> +<!ENTITY notnivc "⋽" ><!--contains, variant --> +<!ENTITY nparsl "∥︀⃥" ><!--not parallel, slanted --> +<!ENTITY npart "∂̸" ><!--not partial differential --> +<!ENTITY npolint "⨔" ><!--line integration, not including the pole --> +<!ENTITY nvinfin "⧞" ><!--not, vert, infinity --> +<!ENTITY olcross "⦻" ><!--circle, cross --> +<!ENTITY Or "⩔" ><!--dbl logical or --> +<!ENTITY or "∨" ><!--/vee /lor B: logical or --> +<!ENTITY ord "⩝" ><!--or, horizontal dash --> +<!ENTITY order "ℴ" ><!--order of (script small o) --> +<!ENTITY oror "⩖" ><!--two logical or --> +<!ENTITY orslope "⩗" ><!--sloping large or --> +<!ENTITY orv "⩛" ><!--or with middle stem --> +<!ENTITY par "∥" ><!--/parallel R: parallel --> +<!ENTITY parsl "∥︀" ><!--parallel, slanted --> +<!ENTITY part "∂" ><!--/partial partial differential --> +<!ENTITY permil "‰" ><!--per thousand --> +<!ENTITY perp "⊥" ><!--/perp R: perpendicular --> +<!ENTITY pertenk "‱" ><!--per 10 thousand --> +<!ENTITY phmmat "ℳ" ><!--physics M-matrix (script capital M) --> +<!ENTITY pointint "⨕" ><!--integral around a point operator --> +<!ENTITY Prime "″" ><!--double prime or second --> +<!ENTITY prime "′" ><!--/prime prime or minute --> +<!ENTITY profalar "⌮" ><!--all-around profile --> +<!ENTITY profline "⌒" ><!--profile of a line --> +<!ENTITY profsurf "⌓" ><!--profile of a surface --> +<!ENTITY prop "∝" ><!--/propto R: is proportional to --> +<!ENTITY qint "⨌" ><!--/iiiint quadruple integral operator --> +<!ENTITY qprime "⁗" ><!--quadruple prime --> +<!ENTITY quatint "⨖" ><!--quaternion integral operator --> +<!ENTITY radic "√" ><!--/surd radical --> +<!ENTITY Rang "》" ><!--right angle bracket, double --> +<!ENTITY rang "〉" ><!--/rangle C: right angle bracket --> +<!ENTITY rArr "⇒" ><!--/Rightarrow A: implies --> +<!ENTITY rbbrk "〕" ><!--right broken bracket --> +<!ENTITY roang "⦊" ><!--right open angular bracket --> +<!ENTITY robrk "〛" ><!--right open bracket --> +<!ENTITY ropar "⦆" ><!--right open parenthesis --> +<!ENTITY rppolint "⨒" ><!--line integration, rectangular path around pole --> +<!ENTITY scpolint "⨓" ><!--line integration, semi-circular path around pole --> +<!ENTITY sim "∼" ><!--/sim R: similar --> +<!ENTITY simdot "⩪" ><!--similar, dot --> +<!ENTITY sime "≃" ><!--/simeq R: similar, equals --> +<!ENTITY smeparsl "⧤" ><!--similar, parallel, slanted, equal --> +<!ENTITY square "□" ><!--/square, square --> +<!ENTITY squarf "▪" ><!--/blacksquare, square, filled --> +<!ENTITY sub "⊂" ><!--/subset R: subset or is implied by --> +<!ENTITY sube "⊆" ><!--/subseteq R: subset, equals --> +<!ENTITY sup "⊃" ><!--/supset R: superset or implies --> +<!ENTITY supe "⊇" ><!--/supseteq R: superset, equals --> +<!ENTITY tdot "⃛" ><!--three dots above --> +<!ENTITY there4 "∴" ><!--/therefore R: therefore --> +<!ENTITY tint "∭" ><!--/iiint triple integral operator --> +<!ENTITY top "⊤" ><!--/top top --> +<!ENTITY topbot "⌶" ><!--top and bottom --> +<!ENTITY topcir "⫱" ><!--top, circle below --> +<!ENTITY tprime "‴" ><!--triple prime --> +<!ENTITY utdot "⋰" ><!--three dots, ascending --> +<!ENTITY uwangle "⦧" ><!--large upward pointing angle --> +<!ENTITY vangrt "⊾" ><!--right angle, variant --> +<!ENTITY veeeq "≚" ><!--logical or, equals --> +<!ENTITY Verbar "‖" ><!--/Vert dbl vertical bar --> +<!ENTITY wedgeq "≙" ><!--/wedgeq R: corresponds to (wedge, equals) --> +<!ENTITY xnis "⋻" ><!--large contains, vertical bar on horizontal stroke --> + + +<!-- Entity sets from informative annex to ISO 8879:1986 (SGML) ....... --> + +<!ENTITY % ent-isobox + PUBLIC "-//W3C//ENTITIES Box and Line Drawing for MathML 2.0//EN" + "iso8879/isobox.ent" > + +<!-- + File isobox.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY boxDL "╗" ><!--lower left quadrant --> +<!ENTITY boxDl "╖" ><!--lower left quadrant --> +<!ENTITY boxdL "╕" ><!--lower left quadrant --> +<!ENTITY boxdl "┐" ><!--lower left quadrant --> +<!ENTITY boxDR "╔" ><!--lower right quadrant --> +<!ENTITY boxDr "╓" ><!--lower right quadrant --> +<!ENTITY boxdR "╒" ><!--lower right quadrant --> +<!ENTITY boxdr "┌" ><!--lower right quadrant --> +<!ENTITY boxH "═" ><!--horizontal line --> +<!ENTITY boxh "─" ><!--horizontal line --> +<!ENTITY boxHD "╦" ><!--lower left and right quadrants --> +<!ENTITY boxHd "╤" ><!--lower left and right quadrants --> +<!ENTITY boxhD "╥" ><!--lower left and right quadrants --> +<!ENTITY boxhd "┬" ><!--lower left and right quadrants --> +<!ENTITY boxHU "╩" ><!--upper left and right quadrants --> +<!ENTITY boxHu "╧" ><!--upper left and right quadrants --> +<!ENTITY boxhU "╨" ><!--upper left and right quadrants --> +<!ENTITY boxhu "┴" ><!--upper left and right quadrants --> +<!ENTITY boxUL "╝" ><!--upper left quadrant --> +<!ENTITY boxUl "╜" ><!--upper left quadrant --> +<!ENTITY boxuL "╛" ><!--upper left quadrant --> +<!ENTITY boxul "┘" ><!--upper left quadrant --> +<!ENTITY boxUR "╚" ><!--upper right quadrant --> +<!ENTITY boxUr "╙" ><!--upper right quadrant --> +<!ENTITY boxuR "╘" ><!--upper right quadrant --> +<!ENTITY boxur "└" ><!--upper right quadrant --> +<!ENTITY boxV "║" ><!--vertical line --> +<!ENTITY boxv "│" ><!--vertical line --> +<!ENTITY boxVH "╬" ><!--all four quadrants --> +<!ENTITY boxVh "╫" ><!--all four quadrants --> +<!ENTITY boxvH "╪" ><!--all four quadrants --> +<!ENTITY boxvh "┼" ><!--all four quadrants --> +<!ENTITY boxVL "╣" ><!--upper and lower left quadrants --> +<!ENTITY boxVl "╢" ><!--upper and lower left quadrants --> +<!ENTITY boxvL "╡" ><!--upper and lower left quadrants --> +<!ENTITY boxvl "┤" ><!--upper and lower left quadrants --> +<!ENTITY boxVR "╠" ><!--upper and lower right quadrants --> +<!ENTITY boxVr "╟" ><!--upper and lower right quadrants --> +<!ENTITY boxvR "╞" ><!--upper and lower right quadrants --> +<!ENTITY boxvr "├" ><!--upper and lower right quadrants --> + + +<!ENTITY % ent-isocyr1 + PUBLIC "-//W3C//ENTITIES Russian Cyrillic for MathML 2.0//EN" + "iso8879/isocyr1.ent" > + +<!-- + File isocyr1.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY Acy "А" ><!--=capital A, Cyrillic --> +<!ENTITY acy "а" ><!--=small a, Cyrillic --> +<!ENTITY Bcy "Б" ><!--=capital BE, Cyrillic --> +<!ENTITY bcy "б" ><!--=small be, Cyrillic --> +<!ENTITY CHcy "Ч" ><!--=capital CHE, Cyrillic --> +<!ENTITY chcy "ч" ><!--=small che, Cyrillic --> +<!ENTITY Dcy "Д" ><!--=capital DE, Cyrillic --> +<!ENTITY dcy "д" ><!--=small de, Cyrillic --> +<!ENTITY Ecy "Э" ><!--=capital E, Cyrillic --> +<!ENTITY ecy "э" ><!--=small e, Cyrillic --> +<!ENTITY Fcy "Ф" ><!--=capital EF, Cyrillic --> +<!ENTITY fcy "ф" ><!--=small ef, Cyrillic --> +<!ENTITY Gcy "Г" ><!--=capital GHE, Cyrillic --> +<!ENTITY gcy "г" ><!--=small ghe, Cyrillic --> +<!ENTITY HARDcy "Ъ" ><!--=capital HARD sign, Cyrillic --> +<!ENTITY hardcy "ъ" ><!--=small hard sign, Cyrillic --> +<!ENTITY Icy "И" ><!--=capital I, Cyrillic --> +<!ENTITY icy "и" ><!--=small i, Cyrillic --> +<!ENTITY IEcy "Е" ><!--=capital IE, Cyrillic --> +<!ENTITY iecy "е" ><!--=small ie, Cyrillic --> +<!ENTITY IOcy "Ё" ><!--=capital IO, Russian --> +<!ENTITY iocy "ё" ><!--=small io, Russian --> +<!ENTITY Jcy "Й" ><!--=capital short I, Cyrillic --> +<!ENTITY jcy "й" ><!--=small short i, Cyrillic --> +<!ENTITY Kcy "К" ><!--=capital KA, Cyrillic --> +<!ENTITY kcy "к" ><!--=small ka, Cyrillic --> +<!ENTITY KHcy "Х" ><!--=capital HA, Cyrillic --> +<!ENTITY khcy "х" ><!--=small ha, Cyrillic --> +<!ENTITY Lcy "Л" ><!--=capital EL, Cyrillic --> +<!ENTITY lcy "л" ><!--=small el, Cyrillic --> +<!ENTITY Mcy "М" ><!--=capital EM, Cyrillic --> +<!ENTITY mcy "м" ><!--=small em, Cyrillic --> +<!ENTITY Ncy "Н" ><!--=capital EN, Cyrillic --> +<!ENTITY ncy "н" ><!--=small en, Cyrillic --> +<!ENTITY numero "№" ><!--=numero sign --> +<!ENTITY Ocy "О" ><!--=capital O, Cyrillic --> +<!ENTITY ocy "о" ><!--=small o, Cyrillic --> +<!ENTITY Pcy "П" ><!--=capital PE, Cyrillic --> +<!ENTITY pcy "п" ><!--=small pe, Cyrillic --> +<!ENTITY Rcy "Р" ><!--=capital ER, Cyrillic --> +<!ENTITY rcy "р" ><!--=small er, Cyrillic --> +<!ENTITY Scy "С" ><!--=capital ES, Cyrillic --> +<!ENTITY scy "с" ><!--=small es, Cyrillic --> +<!ENTITY SHCHcy "Щ" ><!--=capital SHCHA, Cyrillic --> +<!ENTITY shchcy "щ" ><!--=small shcha, Cyrillic --> +<!ENTITY SHcy "Ш" ><!--=capital SHA, Cyrillic --> +<!ENTITY shcy "ш" ><!--=small sha, Cyrillic --> +<!ENTITY SOFTcy "Ь" ><!--=capital SOFT sign, Cyrillic --> +<!ENTITY softcy "ь" ><!--=small soft sign, Cyrillic --> +<!ENTITY Tcy "Т" ><!--=capital TE, Cyrillic --> +<!ENTITY tcy "т" ><!--=small te, Cyrillic --> +<!ENTITY TScy "Ц" ><!--=capital TSE, Cyrillic --> +<!ENTITY tscy "ц" ><!--=small tse, Cyrillic --> +<!ENTITY Ucy "У" ><!--=capital U, Cyrillic --> +<!ENTITY ucy "у" ><!--=small u, Cyrillic --> +<!ENTITY Vcy "В" ><!--=capital VE, Cyrillic --> +<!ENTITY vcy "в" ><!--=small ve, Cyrillic --> +<!ENTITY YAcy "Я" ><!--=capital YA, Cyrillic --> +<!ENTITY yacy "я" ><!--=small ya, Cyrillic --> +<!ENTITY Ycy "Ы" ><!--=capital YERU, Cyrillic --> +<!ENTITY ycy "ы" ><!--=small yeru, Cyrillic --> +<!ENTITY YUcy "Ю" ><!--=capital YU, Cyrillic --> +<!ENTITY yucy "ю" ><!--=small yu, Cyrillic --> +<!ENTITY Zcy "З" ><!--=capital ZE, Cyrillic --> +<!ENTITY zcy "з" ><!--=small ze, Cyrillic --> +<!ENTITY ZHcy "Ж" ><!--=capital ZHE, Cyrillic --> +<!ENTITY zhcy "ж" ><!--=small zhe, Cyrillic --> + + +<!ENTITY % ent-isocyr2 + PUBLIC "-//W3C//ENTITIES Non-Russian Cyrillic for MathML 2.0//EN" + "iso8879/isocyr2.ent" > + +<!-- + File isocyr2.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY DJcy "Ђ" ><!--=capital DJE, Serbian --> +<!ENTITY djcy "ђ" ><!--=small dje, Serbian --> +<!ENTITY DScy "Ѕ" ><!--=capital DSE, Macedonian --> +<!ENTITY dscy "ѕ" ><!--=small dse, Macedonian --> +<!ENTITY DZcy "Џ" ><!--=capital dze, Serbian --> +<!ENTITY dzcy "џ" ><!--=small dze, Serbian --> +<!ENTITY GJcy "Ѓ" ><!--=capital GJE Macedonian --> +<!ENTITY gjcy "ѓ" ><!--=small gje, Macedonian --> +<!ENTITY Iukcy "І" ><!--=capital I, Ukrainian --> +<!ENTITY iukcy "і" ><!--=small i, Ukrainian --> +<!ENTITY Jsercy "Ј" ><!--=capital JE, Serbian --> +<!ENTITY jsercy "ј" ><!--=small je, Serbian --> +<!ENTITY Jukcy "Є" ><!--=capital JE, Ukrainian --> +<!ENTITY jukcy "є" ><!--=small je, Ukrainian --> +<!ENTITY KJcy "Ќ" ><!--=capital KJE, Macedonian --> +<!ENTITY kjcy "ќ" ><!--=small kje Macedonian --> +<!ENTITY LJcy "Љ" ><!--=capital LJE, Serbian --> +<!ENTITY ljcy "љ" ><!--=small lje, Serbian --> +<!ENTITY NJcy "Њ" ><!--=capital NJE, Serbian --> +<!ENTITY njcy "њ" ><!--=small nje, Serbian --> +<!ENTITY TSHcy "Ћ" ><!--=capital TSHE, Serbian --> +<!ENTITY tshcy "ћ" ><!--=small tshe, Serbian --> +<!ENTITY Ubrcy "Ў" ><!--=capital U, Byelorussian --> +<!ENTITY ubrcy "ў" ><!--=small u, Byelorussian --> +<!ENTITY YIcy "Ї" ><!--=capital YI, Ukrainian --> +<!ENTITY yicy "ї" ><!--=small yi, Ukrainian --> + + +<!ENTITY % ent-isodia + PUBLIC "-//W3C//ENTITIES Diacritical Marks for MathML 2.0//EN" + "iso8879/isodia.ent" > + +<!-- + File isodia.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY acute "´" ><!--=acute accent --> +<!ENTITY breve "˘" ><!--=breve --> +<!ENTITY caron "ˇ" ><!--=caron --> +<!ENTITY cedil "¸" ><!--=cedilla --> +<!ENTITY circ "ˆ" ><!--circumflex accent --> +<!ENTITY dblac "˝" ><!--=double acute accent --> +<!ENTITY die "¨" ><!--=dieresis --> +<!ENTITY dot "˙" ><!--=dot above --> +<!ENTITY grave "`" ><!--=grave accent --> +<!ENTITY macr "¯" ><!--=macron --> +<!ENTITY ogon "˛" ><!--=ogonek --> +<!ENTITY ring "˚" ><!--=ring --> +<!ENTITY tilde "˜" ><!--=tilde --> +<!ENTITY uml "¨" ><!--=umlaut mark --> + + +<!ENTITY % ent-isolat1 + PUBLIC "-//W3C//ENTITIES Added Latin 1 for MathML 2.0//EN" + "iso8879/isolat1.ent" > + +<!-- + File isolat1.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY Aacute "Á" ><!--=capital A, acute accent --> +<!ENTITY aacute "á" ><!--=small a, acute accent --> +<!ENTITY Acirc "Â" ><!--=capital A, circumflex accent --> +<!ENTITY acirc "â" ><!--=small a, circumflex accent --> +<!ENTITY AElig "Æ" ><!--=capital AE diphthong (ligature) --> +<!ENTITY aelig "æ" ><!--=small ae diphthong (ligature) --> +<!ENTITY Agrave "À" ><!--=capital A, grave accent --> +<!ENTITY agrave "à" ><!--=small a, grave accent --> +<!ENTITY Aring "Å" ><!--=capital A, ring --> +<!ENTITY aring "å" ><!--=small a, ring --> +<!ENTITY Atilde "Ã" ><!--=capital A, tilde --> +<!ENTITY atilde "ã" ><!--=small a, tilde --> +<!ENTITY Auml "Ä" ><!--=capital A, dieresis or umlaut mark --> +<!ENTITY auml "ä" ><!--=small a, dieresis or umlaut mark --> +<!ENTITY Ccedil "Ç" ><!--=capital C, cedilla --> +<!ENTITY ccedil "ç" ><!--=small c, cedilla --> +<!ENTITY Eacute "É" ><!--=capital E, acute accent --> +<!ENTITY eacute "é" ><!--=small e, acute accent --> +<!ENTITY Ecirc "Ê" ><!--=capital E, circumflex accent --> +<!ENTITY ecirc "ê" ><!--=small e, circumflex accent --> +<!ENTITY Egrave "È" ><!--=capital E, grave accent --> +<!ENTITY egrave "è" ><!--=small e, grave accent --> +<!ENTITY ETH "Ð" ><!--=capital Eth, Icelandic --> +<!ENTITY eth "ð" ><!--=small eth, Icelandic --> +<!ENTITY Euml "Ë" ><!--=capital E, dieresis or umlaut mark --> +<!ENTITY euml "ë" ><!--=small e, dieresis or umlaut mark --> +<!ENTITY Iacute "Í" ><!--=capital I, acute accent --> +<!ENTITY iacute "í" ><!--=small i, acute accent --> +<!ENTITY Icirc "Î" ><!--=capital I, circumflex accent --> +<!ENTITY icirc "î" ><!--=small i, circumflex accent --> +<!ENTITY Igrave "Ì" ><!--=capital I, grave accent --> +<!ENTITY igrave "ì" ><!--=small i, grave accent --> +<!ENTITY Iuml "Ï" ><!--=capital I, dieresis or umlaut mark --> +<!ENTITY iuml "ï" ><!--=small i, dieresis or umlaut mark --> +<!ENTITY Ntilde "Ñ" ><!--=capital N, tilde --> +<!ENTITY ntilde "ñ" ><!--=small n, tilde --> +<!ENTITY Oacute "Ó" ><!--=capital O, acute accent --> +<!ENTITY oacute "ó" ><!--=small o, acute accent --> +<!ENTITY Ocirc "Ô" ><!--=capital O, circumflex accent --> +<!ENTITY ocirc "ô" ><!--=small o, circumflex accent --> +<!ENTITY Ograve "Ò" ><!--=capital O, grave accent --> +<!ENTITY ograve "ò" ><!--=small o, grave accent --> +<!ENTITY Oslash "Ø" ><!--=capital O, slash --> +<!ENTITY oslash "ø" ><!--latin small letter o with stroke --> +<!ENTITY Otilde "Õ" ><!--=capital O, tilde --> +<!ENTITY otilde "õ" ><!--=small o, tilde --> +<!ENTITY Ouml "Ö" ><!--=capital O, dieresis or umlaut mark --> +<!ENTITY ouml "ö" ><!--=small o, dieresis or umlaut mark --> +<!ENTITY szlig "ß" ><!--=small sharp s, German (sz ligature) --> +<!ENTITY THORN "Þ" ><!--=capital THORN, Icelandic --> +<!ENTITY thorn "þ" ><!--=small thorn, Icelandic --> +<!ENTITY Uacute "Ú" ><!--=capital U, acute accent --> +<!ENTITY uacute "ú" ><!--=small u, acute accent --> +<!ENTITY Ucirc "Û" ><!--=capital U, circumflex accent --> +<!ENTITY ucirc "û" ><!--=small u, circumflex accent --> +<!ENTITY Ugrave "Ù" ><!--=capital U, grave accent --> +<!ENTITY ugrave "ù" ><!--=small u, grave accent --> +<!ENTITY Uuml "Ü" ><!--=capital U, dieresis or umlaut mark --> +<!ENTITY uuml "ü" ><!--=small u, dieresis or umlaut mark --> +<!ENTITY Yacute "Ý" ><!--=capital Y, acute accent --> +<!ENTITY yacute "ý" ><!--=small y, acute accent --> +<!ENTITY yuml "ÿ" ><!--=small y, dieresis or umlaut mark --> + + +<!ENTITY % ent-isolat2 + PUBLIC "-//W3C//ENTITIES Added Latin 2 for MathML 2.0//EN" + "iso8879/isolat2.ent" > + +<!-- + File isolat2.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY Abreve "Ă" ><!--=capital A, breve --> +<!ENTITY abreve "ă" ><!--=small a, breve --> +<!ENTITY Amacr "Ā" ><!--=capital A, macron --> +<!ENTITY amacr "ā" ><!--=small a, macron --> +<!ENTITY Aogon "Ą" ><!--=capital A, ogonek --> +<!ENTITY aogon "ą" ><!--=small a, ogonek --> +<!ENTITY Cacute "Ć" ><!--=capital C, acute accent --> +<!ENTITY cacute "ć" ><!--=small c, acute accent --> +<!ENTITY Ccaron "Č" ><!--=capital C, caron --> +<!ENTITY ccaron "č" ><!--=small c, caron --> +<!ENTITY Ccirc "Ĉ" ><!--=capital C, circumflex accent --> +<!ENTITY ccirc "ĉ" ><!--=small c, circumflex accent --> +<!ENTITY Cdot "Ċ" ><!--=capital C, dot above --> +<!ENTITY cdot "ċ" ><!--=small c, dot above --> +<!ENTITY Dcaron "Ď" ><!--=capital D, caron --> +<!ENTITY dcaron "ď" ><!--=small d, caron --> +<!ENTITY Dstrok "Đ" ><!--=capital D, stroke --> +<!ENTITY dstrok "đ" ><!--=small d, stroke --> +<!ENTITY Ecaron "Ě" ><!--=capital E, caron --> +<!ENTITY ecaron "ě" ><!--=small e, caron --> +<!ENTITY Edot "Ė" ><!--=capital E, dot above --> +<!ENTITY edot "ė" ><!--=small e, dot above --> +<!ENTITY Emacr "Ē" ><!--=capital E, macron --> +<!ENTITY emacr "ē" ><!--=small e, macron --> +<!ENTITY ENG "Ŋ" ><!--=capital ENG, Lapp --> +<!ENTITY eng "ŋ" ><!--=small eng, Lapp --> +<!ENTITY Eogon "Ę" ><!--=capital E, ogonek --> +<!ENTITY eogon "ę" ><!--=small e, ogonek --> +<!ENTITY gacute "ǵ" ><!--=small g, acute accent --> +<!ENTITY Gbreve "Ğ" ><!--=capital G, breve --> +<!ENTITY gbreve "ğ" ><!--=small g, breve --> +<!ENTITY Gcedil "Ģ" ><!--=capital G, cedilla --> +<!ENTITY Gcirc "Ĝ" ><!--=capital G, circumflex accent --> +<!ENTITY gcirc "ĝ" ><!--=small g, circumflex accent --> +<!ENTITY Gdot "Ġ" ><!--=capital G, dot above --> +<!ENTITY gdot "ġ" ><!--=small g, dot above --> +<!ENTITY Hcirc "Ĥ" ><!--=capital H, circumflex accent --> +<!ENTITY hcirc "ĥ" ><!--=small h, circumflex accent --> +<!ENTITY Hstrok "Ħ" ><!--=capital H, stroke --> +<!ENTITY hstrok "ħ" ><!--=small h, stroke --> +<!ENTITY Idot "İ" ><!--=capital I, dot above --> +<!ENTITY IJlig "IJ" ><!--=capital IJ ligature --> +<!ENTITY ijlig "ij" ><!--=small ij ligature --> +<!ENTITY Imacr "Ī" ><!--=capital I, macron --> +<!ENTITY imacr "ī" ><!--=small i, macron --> +<!ENTITY inodot "ı" ><!--=small i without dot --> +<!ENTITY Iogon "Į" ><!--=capital I, ogonek --> +<!ENTITY iogon "į" ><!--=small i, ogonek --> +<!ENTITY Itilde "Ĩ" ><!--=capital I, tilde --> +<!ENTITY itilde "ĩ" ><!--=small i, tilde --> +<!ENTITY Jcirc "Ĵ" ><!--=capital J, circumflex accent --> +<!ENTITY jcirc "ĵ" ><!--=small j, circumflex accent --> +<!ENTITY Kcedil "Ķ" ><!--=capital K, cedilla --> +<!ENTITY kcedil "ķ" ><!--=small k, cedilla --> +<!ENTITY kgreen "ĸ" ><!--=small k, Greenlandic --> +<!ENTITY Lacute "Ĺ" ><!--=capital L, acute accent --> +<!ENTITY lacute "ĺ" ><!--=small l, acute accent --> +<!ENTITY Lcaron "Ľ" ><!--=capital L, caron --> +<!ENTITY lcaron "ľ" ><!--=small l, caron --> +<!ENTITY Lcedil "Ļ" ><!--=capital L, cedilla --> +<!ENTITY lcedil "ļ" ><!--=small l, cedilla --> +<!ENTITY Lmidot "Ŀ" ><!--=capital L, middle dot --> +<!ENTITY lmidot "ŀ" ><!--=small l, middle dot --> +<!ENTITY Lstrok "Ł" ><!--=capital L, stroke --> +<!ENTITY lstrok "ł" ><!--=small l, stroke --> +<!ENTITY Nacute "Ń" ><!--=capital N, acute accent --> +<!ENTITY nacute "ń" ><!--=small n, acute accent --> +<!ENTITY napos "ʼn" ><!--=small n, apostrophe --> +<!ENTITY Ncaron "Ň" ><!--=capital N, caron --> +<!ENTITY ncaron "ň" ><!--=small n, caron --> +<!ENTITY Ncedil "Ņ" ><!--=capital N, cedilla --> +<!ENTITY ncedil "ņ" ><!--=small n, cedilla --> +<!ENTITY Odblac "Ő" ><!--=capital O, double acute accent --> +<!ENTITY odblac "ő" ><!--=small o, double acute accent --> +<!ENTITY OElig "Œ" ><!--=capital OE ligature --> +<!ENTITY oelig "œ" ><!--=small oe ligature --> +<!ENTITY Omacr "Ō" ><!--=capital O, macron --> +<!ENTITY omacr "ō" ><!--=small o, macron --> +<!ENTITY Racute "Ŕ" ><!--=capital R, acute accent --> +<!ENTITY racute "ŕ" ><!--=small r, acute accent --> +<!ENTITY Rcaron "Ř" ><!--=capital R, caron --> +<!ENTITY rcaron "ř" ><!--=small r, caron --> +<!ENTITY Rcedil "Ŗ" ><!--=capital R, cedilla --> +<!ENTITY rcedil "ŗ" ><!--=small r, cedilla --> +<!ENTITY Sacute "Ś" ><!--=capital S, acute accent --> +<!ENTITY sacute "ś" ><!--=small s, acute accent --> +<!ENTITY Scaron "Š" ><!--=capital S, caron --> +<!ENTITY scaron "š" ><!--=small s, caron --> +<!ENTITY Scedil "Ş" ><!--=capital S, cedilla --> +<!ENTITY scedil "ş" ><!--=small s, cedilla --> +<!ENTITY Scirc "Ŝ" ><!--=capital S, circumflex accent --> +<!ENTITY scirc "ŝ" ><!--=small s, circumflex accent --> +<!ENTITY Tcaron "Ť" ><!--=capital T, caron --> +<!ENTITY tcaron "ť" ><!--=small t, caron --> +<!ENTITY Tcedil "Ţ" ><!--=capital T, cedilla --> +<!ENTITY tcedil "ţ" ><!--=small t, cedilla --> +<!ENTITY Tstrok "Ŧ" ><!--=capital T, stroke --> +<!ENTITY tstrok "ŧ" ><!--=small t, stroke --> +<!ENTITY Ubreve "Ŭ" ><!--=capital U, breve --> +<!ENTITY ubreve "ŭ" ><!--=small u, breve --> +<!ENTITY Udblac "Ű" ><!--=capital U, double acute accent --> +<!ENTITY udblac "ű" ><!--=small u, double acute accent --> +<!ENTITY Umacr "Ū" ><!--=capital U, macron --> +<!ENTITY umacr "ū" ><!--=small u, macron --> +<!ENTITY Uogon "Ų" ><!--=capital U, ogonek --> +<!ENTITY uogon "ų" ><!--=small u, ogonek --> +<!ENTITY Uring "Ů" ><!--=capital U, ring --> +<!ENTITY uring "ů" ><!--=small u, ring --> +<!ENTITY Utilde "Ũ" ><!--=capital U, tilde --> +<!ENTITY utilde "ũ" ><!--=small u, tilde --> +<!ENTITY Wcirc "Ŵ" ><!--=capital W, circumflex accent --> +<!ENTITY wcirc "ŵ" ><!--=small w, circumflex accent --> +<!ENTITY Ycirc "Ŷ" ><!--=capital Y, circumflex accent --> +<!ENTITY ycirc "ŷ" ><!--=small y, circumflex accent --> +<!ENTITY Yuml "Ÿ" ><!--=capital Y, dieresis or umlaut mark --> +<!ENTITY Zacute "Ź" ><!--=capital Z, acute accent --> +<!ENTITY zacute "ź" ><!--=small z, acute accent --> +<!ENTITY Zcaron "Ž" ><!--=capital Z, caron --> +<!ENTITY zcaron "ž" ><!--=small z, caron --> +<!ENTITY Zdot "Ż" ><!--=capital Z, dot above --> +<!ENTITY zdot "ż" ><!--=small z, dot above --> + + +<!ENTITY % ent-isonum + PUBLIC "-//W3C//ENTITIES Numeric and Special Graphic for MathML 2.0//EN" + "iso8879/isonum.ent" > + +<!-- + File isonum.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY amp "&#38;" ><!--=ampersand --> +<!ENTITY apos "'" ><!--=apostrophe --> +<!ENTITY ast "*" ><!--/ast B: =asterisk --> +<!ENTITY brvbar "¦" ><!--=broken (vertical) bar --> +<!ENTITY bsol "\" ><!--/backslash =reverse solidus --> +<!ENTITY cent "¢" ><!--=cent sign --> +<!ENTITY colon ":" ><!--/colon P: --> +<!ENTITY comma "," ><!--P: =comma --> +<!ENTITY commat "@" ><!--=commercial at --> +<!ENTITY copy "©" ><!--=copyright sign --> +<!ENTITY curren "¤" ><!--=general currency sign --> +<!ENTITY darr "↓" ><!--/downarrow A: =downward arrow --> +<!ENTITY deg "°" ><!--=degree sign --> +<!ENTITY divide "÷" ><!--/div B: =divide sign --> +<!ENTITY dollar "$" ><!--=dollar sign --> +<!ENTITY equals "=" ><!--=equals sign R: --> +<!ENTITY excl "!" ><!--=exclamation mark --> +<!ENTITY frac12 "½" ><!--=fraction one-half --> +<!ENTITY frac14 "¼" ><!--=fraction one-quarter --> +<!ENTITY frac18 "⅛" ><!--=fraction one-eighth --> +<!ENTITY frac34 "¾" ><!--=fraction three-quarters --> +<!ENTITY frac38 "⅜" ><!--=fraction three-eighths --> +<!ENTITY frac58 "⅝" ><!--=fraction five-eighths --> +<!ENTITY frac78 "⅞" ><!--=fraction seven-eighths --> +<!ENTITY gt ">" ><!--=greater-than sign R: --> +<!ENTITY half "½" ><!--=fraction one-half --> +<!ENTITY horbar "―" ><!--=horizontal bar --> +<!ENTITY hyphen "‐" ><!--=hyphen --> +<!ENTITY iexcl "¡" ><!--=inverted exclamation mark --> +<!ENTITY iquest "¿" ><!--=inverted question mark --> +<!ENTITY laquo "«" ><!--=angle quotation mark, left --> +<!ENTITY larr "←" ><!--/leftarrow /gets A: =leftward arrow --> +<!ENTITY lcub "{" ><!--/lbrace O: =left curly bracket --> +<!ENTITY ldquo "“" ><!--=double quotation mark, left --> +<!ENTITY lowbar "_" ><!--=low line --> +<!ENTITY lpar "(" ><!--O: =left parenthesis --> +<!ENTITY lsqb "[" ><!--/lbrack O: =left square bracket --> +<!ENTITY lsquo "‘" ><!--=single quotation mark, left --> +<!ENTITY lt "&#60;" ><!--=less-than sign R: --> +<!ENTITY micro "µ" ><!--=micro sign --> +<!ENTITY middot "·" ><!--/centerdot B: =middle dot --> +<!ENTITY nbsp " " ><!--=no break (required) space --> +<!ENTITY not "¬" ><!--/neg /lnot =not sign --> +<!ENTITY num "#" ><!--=number sign --> +<!ENTITY ohm "Ω" ><!--=ohm sign --> +<!ENTITY ordf "ª" ><!--=ordinal indicator, feminine --> +<!ENTITY ordm "º" ><!--=ordinal indicator, masculine --> +<!ENTITY para "¶" ><!--=pilcrow (paragraph sign) --> +<!ENTITY percnt "%" ><!--=percent sign --> +<!ENTITY period "." ><!--=full stop, period --> +<!ENTITY plus "+" ><!--=plus sign B: --> +<!ENTITY plusmn "±" ><!--/pm B: =plus-or-minus sign --> +<!ENTITY pound "£" ><!--=pound sign --> +<!ENTITY quest "?" ><!--=question mark --> +<!ENTITY quot """ ><!--=quotation mark --> +<!ENTITY raquo "»" ><!--=angle quotation mark, right --> +<!ENTITY rarr "→" ><!--/rightarrow /to A: =rightward arrow --> +<!ENTITY rcub "}" ><!--/rbrace C: =right curly bracket --> +<!ENTITY rdquo "”" ><!--=double quotation mark, right --> +<!ENTITY reg "®" ><!--/circledR =registered sign --> +<!ENTITY rpar ")" ><!--C: =right parenthesis --> +<!ENTITY rsqb "]" ><!--/rbrack C: =right square bracket --> +<!ENTITY rsquo "’" ><!--=single quotation mark, right --> +<!ENTITY sect "§" ><!--=section sign --> +<!ENTITY semi ";" ><!--=semicolon P: --> +<!ENTITY shy "­" ><!--=soft hyphen --> +<!ENTITY sol "/" ><!--=solidus --> +<!ENTITY sung "♪" ><!--=music note (sung text sign) --> +<!ENTITY sup1 "¹" ><!--=superscript one --> +<!ENTITY sup2 "²" ><!--=superscript two --> +<!ENTITY sup3 "³" ><!--=superscript three --> +<!ENTITY times "×" ><!--/times B: =multiply sign --> +<!ENTITY trade "™" ><!--=trade mark sign --> +<!ENTITY uarr "↑" ><!--/uparrow A: =upward arrow --> +<!ENTITY verbar "|" ><!--/vert =vertical bar --> +<!ENTITY yen "¥" ><!--/yen =yen sign --> + + +<!ENTITY % ent-isopub + PUBLIC "-//W3C//ENTITIES Publishing for MathML 2.0//EN" + "iso8879/isopub.ent" > + +<!-- + File isopub.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + Entity names in this file are derived from files carrying the + following notice: + + (C) International Organization for Standardization 1986 + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +--> + +<!ENTITY blank "␣" ><!--=significant blank symbol --> +<!ENTITY blk12 "▒" ><!--=50% shaded block --> +<!ENTITY blk14 "░" ><!--=25% shaded block --> +<!ENTITY blk34 "▓" ><!--=75% shaded block --> +<!ENTITY block "█" ><!--=full block --> +<!ENTITY bull "•" ><!--/bullet B: =round bullet, filled --> +<!ENTITY caret "⁁" ><!--=caret (insertion mark) --> +<!ENTITY check "✓" ><!--/checkmark =tick, check mark --> +<!ENTITY cir "○" ><!--/circ B: =circle, open --> +<!ENTITY clubs "♣" ><!--/clubsuit =club suit symbol --> +<!ENTITY copysr "℗" ><!--=sound recording copyright sign --> +<!ENTITY cross "✗" ><!--=ballot cross --> +<!ENTITY Dagger "‡" ><!--/ddagger B: =double dagger --> +<!ENTITY dagger "†" ><!--/dagger B: =dagger --> +<!ENTITY dash "‐" ><!--=hyphen (true graphic) --> +<!ENTITY diams "♦" ><!--/diamondsuit =diamond suit symbol --> +<!ENTITY dlcrop "⌍" ><!--downward left crop mark --> +<!ENTITY drcrop "⌌" ><!--downward right crop mark --> +<!ENTITY dtri "▿" ><!--/triangledown =down triangle, open --> +<!ENTITY dtrif "▾" ><!--/blacktriangledown =dn tri, filled --> +<!ENTITY emsp " " ><!--=em space --> +<!ENTITY emsp13 " " ><!--=1/3-em space --> +<!ENTITY emsp14 " " ><!--=1/4-em space --> +<!ENTITY ensp " " ><!--=en space (1/2-em) --> +<!ENTITY female "♀" ><!--=female symbol --> +<!ENTITY ffilig "ffi" ><!--small ffi ligature --> +<!ENTITY fflig "ff" ><!--small ff ligature --> +<!ENTITY ffllig "ffl" ><!--small ffl ligature --> +<!ENTITY filig "fi" ><!--small fi ligature --> +<!ENTITY flat "♭" ><!--/flat =musical flat --> +<!ENTITY fllig "fl" ><!--small fl ligature --> +<!ENTITY frac13 "⅓" ><!--=fraction one-third --> +<!ENTITY frac15 "⅕" ><!--=fraction one-fifth --> +<!ENTITY frac16 "⅙" ><!--=fraction one-sixth --> +<!ENTITY frac23 "⅔" ><!--=fraction two-thirds --> +<!ENTITY frac25 "⅖" ><!--=fraction two-fifths --> +<!ENTITY frac35 "⅗" ><!--=fraction three-fifths --> +<!ENTITY frac45 "⅘" ><!--=fraction four-fifths --> +<!ENTITY frac56 "⅚" ><!--=fraction five-sixths --> +<!ENTITY hairsp " " ><!--=hair space --> +<!ENTITY hellip "…" ><!--=ellipsis (horizontal) --> +<!ENTITY hybull "⁃" ><!--rectangle, filled (hyphen bullet) --> +<!ENTITY incare "℅" ><!--=in-care-of symbol --> +<!ENTITY ldquor "„" ><!--=rising dbl quote, left (low) --> +<!ENTITY lhblk "▄" ><!--=lower half block --> +<!ENTITY loz "◊" ><!--/lozenge - lozenge or total mark --> +<!ENTITY lozf "⧫" ><!--/blacklozenge - lozenge, filled --> +<!ENTITY lsquor "‚" ><!--=rising single quote, left (low) --> +<!ENTITY ltri "◃" ><!--/triangleleft B: l triangle, open --> +<!ENTITY ltrif "◂" ><!--/blacktriangleleft R: =l tri, filled --> +<!ENTITY male "♂" ><!--=male symbol --> +<!ENTITY malt "✠" ><!--/maltese =maltese cross --> +<!ENTITY marker "▮" ><!--=histogram marker --> +<!ENTITY mdash "—" ><!--=em dash --> +<!ENTITY mldr "…" ><!--em leader --> +<!ENTITY natur "♮" ><!--/natural - music natural --> +<!ENTITY ndash "–" ><!--=en dash --> +<!ENTITY nldr "‥" ><!--=double baseline dot (en leader) --> +<!ENTITY numsp " " ><!--=digit space (width of a number) --> +<!ENTITY phone "☎" ><!--=telephone symbol --> +<!ENTITY puncsp " " ><!--=punctuation space (width of comma) --> +<!ENTITY rdquor "”" ><!--rising dbl quote, right (high) --> +<!ENTITY rect "▭" ><!--=rectangle, open --> +<!ENTITY rsquor "’" ><!--rising single quote, right (high) --> +<!ENTITY rtri "▹" ><!--/triangleright B: r triangle, open --> +<!ENTITY rtrif "▸" ><!--/blacktriangleright R: =r tri, filled --> +<!ENTITY rx "℞" ><!--pharmaceutical prescription (Rx) --> +<!ENTITY sext "✶" ><!--sextile (6-pointed star) --> +<!ENTITY sharp "♯" ><!--/sharp =musical sharp --> +<!ENTITY spades "♠" ><!--/spadesuit =spades suit symbol --> +<!ENTITY squ "□" ><!--=square, open --> +<!ENTITY squf "▪" ><!--/blacksquare =sq bullet, filled --> +<!ENTITY star "⋆" ><!--=star, open --> +<!ENTITY starf "★" ><!--/bigstar - star, filled --> +<!ENTITY target "⌖" ><!--register mark or target --> +<!ENTITY telrec "⌕" ><!--=telephone recorder symbol --> +<!ENTITY thinsp " " ><!--=thin space (1/6-em) --> +<!ENTITY uhblk "▀" ><!--=upper half block --> +<!ENTITY ulcrop "⌏" ><!--upward left crop mark --> +<!ENTITY urcrop "⌎" ><!--upward right crop mark --> +<!ENTITY utri "▵" ><!--/triangle =up triangle, open --> +<!ENTITY utrif "▴" ><!--/blacktriangle =up tri, filled --> +<!ENTITY vellip "⋮" ><!--vertical ellipsis --> + + +<!-- New characters defined by MathML ............................ --> + +<!ENTITY % ent-mmlextra + PUBLIC "-//W3C//ENTITIES Extra for MathML 2.0//EN" + "mathml/mmlextra.ent" > + +<!-- + File mmlextra.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + +--> + +<!ENTITY % plane1D "&#38;#x1D"> + +<!ENTITY af "⁡" ><!--character showing function application in presentation tagging --> +<!ENTITY aopf "%plane1D;552;" ><!-- --> +<!ENTITY asympeq "≍" ><!--Old ISOAMSR asymp (for HTML compatibility) --> +<!ENTITY bopf "%plane1D;553;" ><!-- --> +<!ENTITY copf "%plane1D;554;" ><!-- --> +<!ENTITY Cross "⨯" ><!--cross or vector product --> +<!ENTITY DD "ⅅ" ><!--D for use in differentials, e.g., within integrals --> +<!ENTITY dd "ⅆ" ><!--d for use in differentials, e.g., within integrals --> +<!ENTITY dopf "%plane1D;555;" ><!-- --> +<!ENTITY DownArrowBar "⤓" ><!--down arrow to bar --> +<!ENTITY DownBreve "̑" ><!--breve, inverted (non-spacing) --> +<!ENTITY DownLeftRightVector "⥐" ><!--left-down-right-down harpoon --> +<!ENTITY DownLeftTeeVector "⥞" ><!--left-down harpoon from bar --> +<!ENTITY DownLeftVectorBar "⥖" ><!--left-down harpoon to bar --> +<!ENTITY DownRightTeeVector "⥟" ><!--right-down harpoon from bar --> +<!ENTITY DownRightVectorBar "⥗" ><!--right-down harpoon to bar --> +<!ENTITY ee "ⅇ" ><!--e use for the exponential base of the natural logarithms --> +<!ENTITY EmptySmallSquare "◻" ><!--empty small square --> +<!ENTITY EmptyVerySmallSquare "▫" ><!--empty small square --> +<!ENTITY eopf "%plane1D;556;" ><!-- --> +<!ENTITY Equal "⩵" ><!--two consecutive equal signs --> +<!ENTITY FilledSmallSquare "◼" ><!--filled small square --> +<!ENTITY FilledVerySmallSquare "▪" ><!--filled very small square --> +<!ENTITY fopf "%plane1D;557;" ><!-- --> +<!ENTITY gopf "%plane1D;558;" ><!-- --> +<!ENTITY GreaterGreater "⪢" ><!--alias for GT --> +<!ENTITY Hat "^" ><!--circumflex accent --> +<!ENTITY hopf "%plane1D;559;" ><!-- --> +<!ENTITY HorizontalLine "─" ><!--short horizontal line --> +<!ENTITY ic "⁣" ><!--short form of ⁣ --> +<!ENTITY ii "ⅈ" ><!--i for use as a square root of -1 --> +<!ENTITY iopf "%plane1D;55A;" ><!-- --> +<!ENTITY it "⁢" ><!--marks multiplication when it is understood without a mark --> +<!ENTITY jopf "%plane1D;55B;" ><!-- --> +<!ENTITY kopf "%plane1D;55C;" ><!-- --> +<!ENTITY larrb "⇤" ><!--leftwards arrow to bar --> +<!ENTITY LeftDownTeeVector "⥡" ><!--down-left harpoon from bar --> +<!ENTITY LeftDownVectorBar "⥙" ><!--down-left harpoon to bar --> +<!ENTITY LeftRightVector "⥎" ><!--left-up-right-up harpoon --> +<!ENTITY LeftTeeVector "⥚" ><!--left-up harpoon from bar --> +<!ENTITY LeftTriangleBar "⧏" ><!--not left triangle, vertical bar --> +<!ENTITY LeftUpDownVector "⥑" ><!--up-left-down-left harpoon --> +<!ENTITY LeftUpTeeVector "⥠" ><!--up-left harpoon from bar --> +<!ENTITY LeftUpVectorBar "⥘" ><!--up-left harpoon to bar --> +<!ENTITY LeftVectorBar "⥒" ><!--left-up harpoon to bar --> +<!ENTITY LessLess "⪡" ><!--alias for Lt --> +<!ENTITY lopf "%plane1D;55D;" ><!-- --> +<!ENTITY mapstodown "↧" ><!--downwards arrow from bar --> +<!ENTITY mapstoleft "↤" ><!--leftwards arrow from bar --> +<!ENTITY mapstoup "↥" ><!--upwards arrow from bar --> +<!ENTITY MediumSpace " " ><!--space of width 4/18 em --> +<!ENTITY mopf "%plane1D;55E;" ><!-- --> +<!ENTITY nbump "≎̸" ><!--not bumpy equals --> +<!ENTITY nbumpe "≏̸" ><!--not bumpy single equals --> +<!ENTITY nesim "≂̸" ><!--not equal or similar --> +<!ENTITY NewLine "
" ><!--force a line break; line feed --> +<!ENTITY NoBreak "⁠" ><!--never break line here --> +<!ENTITY nopf "%plane1D;55F;" ><!-- --> +<!ENTITY NotCupCap "≭" ><!--alias for &nasymp; --> +<!ENTITY NotHumpEqual "≏̸" ><!--alias for ≏̸ --> +<!ENTITY NotLeftTriangleBar "⧏̸" ><!--not left triangle, vertical bar --> +<!ENTITY NotNestedGreaterGreater "⪢̸" ><!--not double greater-than sign --> +<!ENTITY NotNestedLessLess "⪡̸" ><!--not double less-than sign --> +<!ENTITY NotRightTriangleBar "⧐̸" ><!--not vertical bar, right triangle --> +<!ENTITY NotSquareSubset "⊏̸" ><!--square not subset --> +<!ENTITY NotSquareSuperset "⊐̸" ><!--negated set-like partial order operator --> +<!ENTITY NotSucceedsTilde "≿̸" ><!--not succeeds or similar --> +<!ENTITY oopf "%plane1D;560;" ><!-- --> +<!ENTITY OverBar "¯" ><!--over bar --> +<!ENTITY OverBrace "︷" ><!--over brace --> +<!ENTITY OverBracket "⎴" ><!--over bracket --> +<!ENTITY OverParenthesis "︵" ><!--over parenthesis --> +<!ENTITY planckh "ℎ" ><!--the ring (skew field) of quaternions --> +<!ENTITY popf "%plane1D;561;" ><!-- --> +<!ENTITY Product "∏" ><!--alias for &prod --> +<!ENTITY qopf "%plane1D;562;" ><!-- --> +<!ENTITY rarrb "⇥" ><!--leftwards arrow to bar --> +<!ENTITY RightDownTeeVector "⥝" ><!--down-right harpoon from bar --> +<!ENTITY RightDownVectorBar "⥕" ><!--down-right harpoon to bar --> +<!ENTITY RightTeeVector "⥛" ><!--right-up harpoon from bar --> +<!ENTITY RightTriangleBar "⧐" ><!--vertical bar, right triangle --> +<!ENTITY RightUpDownVector "⥏" ><!--up-right-down-right harpoon --> +<!ENTITY RightUpTeeVector "⥜" ><!--up-right harpoon from bar --> +<!ENTITY RightUpVectorBar "⥔" ><!--up-right harpoon to bar --> +<!ENTITY RightVectorBar "⥓" ><!--up-right harpoon to bar --> +<!ENTITY ropf "%plane1D;563;" ><!-- --> +<!ENTITY RoundImplies "⥰" ><!--round implies --> +<!ENTITY RuleDelayed "⧴" ><!--rule-delayed (colon right arrow) --> +<!ENTITY sopf "%plane1D;564;" ><!-- --> +<!ENTITY Tab "	" ><!--tabulator stop; horizontal tabulation --> +<!ENTITY ThickSpace "   " ><!--space of width 5/18 em --> +<!ENTITY topf "%plane1D;565;" ><!-- --> +<!ENTITY UnderBar "̲" ><!--combining low line --> +<!ENTITY UnderBrace "︸" ><!--under brace --> +<!ENTITY UnderBracket "⎵" ><!--under bracket --> +<!ENTITY UnderParenthesis "︶" ><!--under parenthesis --> +<!ENTITY uopf "%plane1D;566;" ><!-- --> +<!ENTITY UpArrowBar "⤒" ><!--up arrow to bar --> +<!ENTITY Upsilon "Υ" ><!--ISOGRK1 Ugr, HTML4 Upsilon --> +<!ENTITY VerticalLine "|" ><!--alias ISONUM verbar --> +<!ENTITY VerticalSeparator "❘" ><!--vertical separating operator --> +<!ENTITY vopf "%plane1D;567;" ><!-- --> +<!ENTITY wopf "%plane1D;568;" ><!-- --> +<!ENTITY xopf "%plane1D;569;" ><!-- --> +<!ENTITY yopf "%plane1D;56A;" ><!-- --> +<!ENTITY ZeroWidthSpace "​" ><!--zero width space --> +<!ENTITY zopf "%plane1D;56B;" ><!-- --> + + +<!-- MathML aliases for characters defined above ................. --> + +<!ENTITY % ent-mmlalias + PUBLIC "-//W3C//ENTITIES Aiases for MathML 2.0//EN" + "mathml/mmlalias.ent" > + +<!-- + File mmlalias.ent produced by the XSL script characters.xsl + from input data in unicode.xml. + + Please report any errors to David Carlisle + via the public W3C list www-math@w3.org. + + The numeric character values assigned to each entity + (should) match the Unicode assignments in Unicode 3.2. + + References to the VARIANT SELECTOR 1 character (︀) + should match the uses listed in Unicode Technical Report 25. + +--> + +<!ENTITY angle "∠" ><!--alias ISOAMSO ang --> +<!ENTITY ApplyFunction "⁡" ><!--character showing function application in presentation tagging --> +<!ENTITY approx "≈" ><!--alias ISOTECH ap --> +<!ENTITY approxeq "≊" ><!--alias ISOAMSR ape --> +<!ENTITY Assign "≔" ><!--assignment operator, alias ISOAMSR colone --> +<!ENTITY backcong "≌" ><!--alias ISOAMSR bcong --> +<!ENTITY backepsilon "϶" ><!--alias ISOAMSR bepsi --> +<!ENTITY backprime "‵" ><!--alias ISOAMSO bprime --> +<!ENTITY backsim "∽" ><!--alias ISOAMSR bsim --> +<!ENTITY backsimeq "⋍" ><!--alias ISOAMSR bsime --> +<!ENTITY Backslash "∖" ><!--alias ISOAMSB setmn --> +<!ENTITY barwedge "⊼" ><!--alias ISOAMSB barwed --> +<!ENTITY Because "∵" ><!--alias ISOTECH becaus --> +<!ENTITY because "∵" ><!--alias ISOTECH becaus --> +<!ENTITY Bernoullis "ℬ" ><!--alias ISOTECH bernou --> +<!ENTITY between "≬" ><!--alias ISOAMSR twixt --> +<!ENTITY bigcap "⋂" ><!--alias ISOAMSB xcap --> +<!ENTITY bigcirc "◯" ><!--alias ISOAMSB xcirc --> +<!ENTITY bigcup "⋃" ><!--alias ISOAMSB xcup --> +<!ENTITY bigodot "⊙" ><!--alias ISOAMSB xodot --> +<!ENTITY bigoplus "⊕" ><!--alias ISOAMSB xoplus --> +<!ENTITY bigotimes "⊗" ><!--alias ISOAMSB xotime --> +<!ENTITY bigsqcup "⊔" ><!--alias ISOAMSB xsqcup --> +<!ENTITY bigstar "★" ><!--ISOPUB starf --> +<!ENTITY bigtriangledown "▽" ><!--alias ISOAMSB xdtri --> +<!ENTITY bigtriangleup "△" ><!--alias ISOAMSB xutri --> +<!ENTITY biguplus "⊎" ><!--alias ISOAMSB xuplus --> +<!ENTITY bigvee "⋁" ><!--alias ISOAMSB xvee --> +<!ENTITY bigwedge "⋀" ><!--alias ISOAMSB xwedge --> +<!ENTITY bkarow "⤍" ><!--alias ISOAMSA rbarr --> +<!ENTITY blacklozenge "⧫" ><!--alias ISOPUB lozf --> +<!ENTITY blacksquare "▪" ><!--ISOTECH squarf --> +<!ENTITY blacktriangle "▴" ><!--alias ISOPUB utrif --> +<!ENTITY blacktriangledown "▾" ><!--alias ISOPUB dtrif --> +<!ENTITY blacktriangleleft "◂" ><!--alias ISOPUB ltrif --> +<!ENTITY blacktriangleright "▸" ><!--alias ISOPUB rtrif --> +<!ENTITY bot "⊥" ><!--alias ISOTECH bottom --> +<!ENTITY boxminus "⊟" ><!--alias ISOAMSB minusb --> +<!ENTITY boxplus "⊞" ><!--alias ISOAMSB plusb --> +<!ENTITY boxtimes "⊠" ><!--alias ISOAMSB timesb --> +<!ENTITY Breve "˘" ><!--alias ISODIA breve --> +<!ENTITY bullet "•" ><!--alias ISOPUB bull --> +<!ENTITY Bumpeq "≎" ><!--alias ISOAMSR bump --> +<!ENTITY bumpeq "≏" ><!--alias ISOAMSR bumpe --> +<!ENTITY CapitalDifferentialD "ⅅ" ><!--D for use in differentials, e.g., within integrals --> +<!ENTITY Cayleys "ℭ" ><!--the non-associative ring of octonions or Cayley numbers --> +<!ENTITY Cedilla "¸" ><!--alias ISODIA cedil --> +<!ENTITY CenterDot "·" ><!--alias ISONUM middot --> +<!ENTITY centerdot "·" ><!--alias ISONUM middot --> +<!ENTITY checkmark "✓" ><!--alias ISOPUB check --> +<!ENTITY circeq "≗" ><!--alias ISOAMSR cire --> +<!ENTITY circlearrowleft "↺" ><!--alias ISOAMSA olarr --> +<!ENTITY circlearrowright "↻" ><!--alias ISOAMSA orarr --> +<!ENTITY circledast "⊛" ><!--alias ISOAMSB oast --> +<!ENTITY circledcirc "⊚" ><!--alias ISOAMSB ocir --> +<!ENTITY circleddash "⊝" ><!--alias ISOAMSB odash --> +<!ENTITY CircleDot "⊙" ><!--alias ISOAMSB odot --> +<!ENTITY circledR "®" ><!--alias ISONUM reg --> +<!ENTITY circledS "Ⓢ" ><!--alias ISOAMSO oS --> +<!ENTITY CircleMinus "⊖" ><!--alias ISOAMSB ominus --> +<!ENTITY CirclePlus "⊕" ><!--alias ISOAMSB oplus --> +<!ENTITY CircleTimes "⊗" ><!--alias ISOAMSB otimes --> +<!ENTITY ClockwiseContourIntegral "∲" ><!--alias ISOTECH cwconint --> +<!ENTITY CloseCurlyDoubleQuote "”" ><!--alias ISONUM rdquo --> +<!ENTITY CloseCurlyQuote "’" ><!--alias ISONUM rsquo --> +<!ENTITY clubsuit "♣" ><!--ISOPUB clubs --> +<!ENTITY coloneq "≔" ><!--alias ISOAMSR colone --> +<!ENTITY complement "∁" ><!--alias ISOAMSO comp --> +<!ENTITY complexes "ℂ" ><!--the field of complex numbers --> +<!ENTITY Congruent "≡" ><!--alias ISOTECH equiv --> +<!ENTITY ContourIntegral "∮" ><!--alias ISOTECH conint --> +<!ENTITY Coproduct "∐" ><!--alias ISOAMSB coprod --> +<!ENTITY CounterClockwiseContourIntegral "∳" ><!--alias ISOTECH awconint --> +<!ENTITY CupCap "≍" ><!--alias asympeq --> +<!ENTITY curlyeqprec "⋞" ><!--alias ISOAMSR cuepr --> +<!ENTITY curlyeqsucc "⋟" ><!--alias ISOAMSR cuesc --> +<!ENTITY curlyvee "⋎" ><!--alias ISOAMSB cuvee --> +<!ENTITY curlywedge "⋏" ><!--alias ISOAMSB cuwed --> +<!ENTITY curvearrowleft "↶" ><!--alias ISOAMSA cularr --> +<!ENTITY curvearrowright "↷" ><!--alias ISOAMSA curarr --> +<!ENTITY dbkarow "⤏" ><!--alias ISOAMSA rBarr --> +<!ENTITY ddagger "‡" ><!--alias ISOPUB Dagger --> +<!ENTITY ddotseq "⩷" ><!--alias ISOAMSR eDDot --> +<!ENTITY Del "∇" ><!--alias ISOTECH nabla --> +<!ENTITY DiacriticalAcute "´" ><!--alias ISODIA acute --> +<!ENTITY DiacriticalDot "˙" ><!--alias ISODIA dot --> +<!ENTITY DiacriticalDoubleAcute "˝" ><!--alias ISODIA dblac --> +<!ENTITY DiacriticalGrave "`" ><!--alias ISODIA grave --> +<!ENTITY DiacriticalTilde "˜" ><!--alias ISODIA tilde --> +<!ENTITY Diamond "⋄" ><!--alias ISOAMSB diam --> +<!ENTITY diamond "⋄" ><!--alias ISOAMSB diam --> +<!ENTITY diamondsuit "♦" ><!--ISOPUB diams --> +<!ENTITY DifferentialD "ⅆ" ><!--d for use in differentials, e.g., within integrals --> +<!ENTITY digamma "Ϝ" ><!--alias ISOGRK3 gammad --> +<!ENTITY div "÷" ><!--alias ISONUM divide --> +<!ENTITY divideontimes "⋇" ><!--alias ISOAMSB divonx --> +<!ENTITY doteq "≐" ><!--alias ISOAMSR esdot --> +<!ENTITY doteqdot "≑" ><!--alias ISOAMSR eDot --> +<!ENTITY DotEqual "≐" ><!--alias ISOAMSR esdot --> +<!ENTITY dotminus "∸" ><!--alias ISOAMSB minusd --> +<!ENTITY dotplus "∔" ><!--alias ISOAMSB plusdo --> +<!ENTITY dotsquare "⊡" ><!--alias ISOAMSB sdotb --> +<!ENTITY doublebarwedge "⌆" ><!--alias ISOAMSB Barwed --> +<!ENTITY DoubleContourIntegral "∯" ><!--alias ISOTECH Conint --> +<!ENTITY DoubleDot "¨" ><!--alias ISODIA die --> +<!ENTITY DoubleDownArrow "⇓" ><!--alias ISOAMSA dArr --> +<!ENTITY DoubleLeftArrow "⇐" ><!--alias ISOTECH lArr --> +<!ENTITY DoubleLeftRightArrow "⇔" ><!--alias ISOAMSA hArr --> +<!ENTITY DoubleLeftTee "⫤" ><!--alias for ⫤ --> +<!ENTITY DoubleLongLeftArrow "⟸" ><!--alias ISOAMSA xlArr --> +<!ENTITY DoubleLongLeftRightArrow "⟺" ><!--alias ISOAMSA xhArr --> +<!ENTITY DoubleLongRightArrow "⟹" ><!--alias ISOAMSA xrArr --> +<!ENTITY DoubleRightArrow "⇒" ><!--alias ISOTECH rArr --> +<!ENTITY DoubleRightTee "⊨" ><!--alias ISOAMSR vDash --> +<!ENTITY DoubleUpArrow "⇑" ><!--alias ISOAMSA uArr --> +<!ENTITY DoubleUpDownArrow "⇕" ><!--alias ISOAMSA vArr --> +<!ENTITY DoubleVerticalBar "∥" ><!--alias ISOTECH par --> +<!ENTITY DownArrow "↓" ><!--alias ISONUM darr --> +<!ENTITY Downarrow "⇓" ><!--alias ISOAMSA dArr --> +<!ENTITY downarrow "↓" ><!--alias ISONUM darr --> +<!ENTITY DownArrowUpArrow "⇵" ><!--alias ISOAMSA duarr --> +<!ENTITY downdownarrows "⇊" ><!--alias ISOAMSA ddarr --> +<!ENTITY downharpoonleft "⇃" ><!--alias ISOAMSA dharl --> +<!ENTITY downharpoonright "⇂" ><!--alias ISOAMSA dharr --> +<!ENTITY DownLeftVector "↽" ><!--alias ISOAMSA lhard --> +<!ENTITY DownRightVector "⇁" ><!--alias ISOAMSA rhard --> +<!ENTITY DownTee "⊤" ><!--alias ISOTECH top --> +<!ENTITY DownTeeArrow "↧" ><!--alias for mapstodown --> +<!ENTITY drbkarow "⤐" ><!--alias ISOAMSA RBarr --> +<!ENTITY Element "∈" ><!--alias ISOTECH isinv --> +<!ENTITY emptyset "∅" ><!--alias ISOAMSO empty --> +<!ENTITY eqcirc "≖" ><!--alias ISOAMSR ecir --> +<!ENTITY eqcolon "≕" ><!--alias ISOAMSR ecolon --> +<!ENTITY eqsim "≂" ><!--alias ISOAMSR esim --> +<!ENTITY eqslantgtr "⋝" ><!--alias ISOAMSR egs --> +<!ENTITY eqslantless "⋜" ><!--alias ISOAMSR els --> +<!ENTITY EqualTilde "≂" ><!--alias ISOAMSR esim --> +<!ENTITY Equilibrium "⇌" ><!--alias ISOAMSA rlhar --> +<!ENTITY Exists "∃" ><!--alias ISOTECH exist --> +<!ENTITY expectation "ℰ" ><!--expectation (operator) --> +<!ENTITY ExponentialE "ⅇ" ><!--e use for the exponential base of the natural logarithms --> +<!ENTITY exponentiale "ⅇ" ><!--base of the Napierian logarithms --> +<!ENTITY fallingdotseq "≒" ><!--alias ISOAMSR efDot --> +<!ENTITY ForAll "∀" ><!--alias ISOTECH forall --> +<!ENTITY Fouriertrf "ℱ" ><!--Fourier transform --> +<!ENTITY geq "≥" ><!--alias ISOTECH ge --> +<!ENTITY geqq "≧" ><!--alias ISOAMSR gE --> +<!ENTITY geqslant "⩾" ><!--alias ISOAMSR ges --> +<!ENTITY gg "≫" ><!--alias ISOAMSR Gt --> +<!ENTITY ggg "⋙" ><!--alias ISOAMSR Gg --> +<!ENTITY gnapprox "⪊" ><!--alias ISOAMSN gnap --> +<!ENTITY gneq "≩" ><!--alias ISOAMSN gne --> +<!ENTITY gneqq "≩" ><!--alias ISOAMSN gnE --> +<!ENTITY GreaterEqual "≥" ><!--alias ISOTECH ge --> +<!ENTITY GreaterEqualLess "⋛" ><!--alias ISOAMSR gel --> +<!ENTITY GreaterFullEqual "≧" ><!--alias ISOAMSR gE --> +<!ENTITY GreaterLess "≷" ><!--alias ISOAMSR gl --> +<!ENTITY GreaterSlantEqual "⩾" ><!--alias ISOAMSR ges --> +<!ENTITY GreaterTilde "≳" ><!--alias ISOAMSR gsim --> +<!ENTITY gtrapprox "≳" ><!--alias ISOAMSR gap --> +<!ENTITY gtrdot "⋗" ><!--alias ISOAMSR gtdot --> +<!ENTITY gtreqless "⋛" ><!--alias ISOAMSR gel --> +<!ENTITY gtreqqless "⋛" ><!--alias ISOAMSR gEl --> +<!ENTITY gtrless "≷" ><!--alias ISOAMSR gl --> +<!ENTITY gtrsim "≳" ><!--alias ISOAMSR gsim --> +<!ENTITY gvertneqq "≩︀" ><!--alias ISOAMSN gvnE --> +<!ENTITY Hacek "ˇ" ><!--alias ISODIA caron --> +<!ENTITY hbar "ℏ" ><!--alias ISOAMSO plank --> +<!ENTITY heartsuit "♡" ><!--ISOPUB hearts --> +<!ENTITY HilbertSpace "ℋ" ><!--Hilbert space --> +<!ENTITY hksearow "⤥" ><!--alias ISOAMSA searhk --> +<!ENTITY hkswarow "⤦" ><!--alias ISOAMSA swarhk --> +<!ENTITY hookleftarrow "↩" ><!--alias ISOAMSA larrhk --> +<!ENTITY hookrightarrow "↪" ><!--alias ISOAMSA rarrhk --> +<!ENTITY hslash "ℏ" ><!--alias ISOAMSO plankv --> +<!ENTITY HumpDownHump "≎" ><!--alias ISOAMSR bump --> +<!ENTITY HumpEqual "≏" ><!--alias ISOAMSR bumpe --> +<!ENTITY iiiint "⨌" ><!--alias ISOTECH qint --> +<!ENTITY iiint "∭" ><!--alias ISOTECH tint --> +<!ENTITY Im "ℑ" ><!--alias ISOAMSO image --> +<!ENTITY ImaginaryI "ⅈ" ><!--i for use as a square root of -1 --> +<!ENTITY imagline "ℐ" ><!--the geometric imaginary line --> +<!ENTITY imagpart "ℑ" ><!--alias ISOAMSO image --> +<!ENTITY Implies "⇒" ><!--alias ISOTECH rArr --> +<!ENTITY in "∈" ><!--ISOTECH isin --> +<!ENTITY integers "ℤ" ><!--the ring of integers --> +<!ENTITY Integral "∫" ><!--alias ISOTECH int --> +<!ENTITY intercal "⊺" ><!--alias ISOAMSB intcal --> +<!ENTITY Intersection "⋂" ><!--alias ISOAMSB xcap --> +<!ENTITY intprod "⨼" ><!--alias ISOAMSB iprod --> +<!ENTITY InvisibleComma "⁣" ><!--used as a separator, e.g., in indices --> +<!ENTITY InvisibleTimes "⁢" ><!--marks multiplication when it is understood without a mark --> +<!ENTITY langle "〈" ><!--alias ISOTECH lang --> +<!ENTITY Laplacetrf "ℒ" ><!--Laplace transform --> +<!ENTITY lbrace "{" ><!--alias ISONUM lcub --> +<!ENTITY lbrack "[" ><!--alias ISONUM lsqb --> +<!ENTITY LeftAngleBracket "〈" ><!--alias ISOTECH lang --> +<!ENTITY LeftArrow "←" ><!--alias ISONUM larr --> +<!ENTITY Leftarrow "⇐" ><!--alias ISOTECH lArr --> +<!ENTITY leftarrow "←" ><!--alias ISONUM larr --> +<!ENTITY LeftArrowBar "⇤" ><!--alias for larrb --> +<!ENTITY LeftArrowRightArrow "⇆" ><!--alias ISOAMSA lrarr --> +<!ENTITY leftarrowtail "↢" ><!--alias ISOAMSA larrtl --> +<!ENTITY LeftCeiling "⌈" ><!--alias ISOAMSC lceil --> +<!ENTITY LeftDoubleBracket "〚" ><!--left double bracket delimiter --> +<!ENTITY LeftDownVector "⇃" ><!--alias ISOAMSA dharl --> +<!ENTITY LeftFloor "⌊" ><!--alias ISOAMSC lfloor --> +<!ENTITY leftharpoondown "↽" ><!--alias ISOAMSA lhard --> +<!ENTITY leftharpoonup "↼" ><!--alias ISOAMSA lharu --> +<!ENTITY leftleftarrows "⇇" ><!--alias ISOAMSA llarr --> +<!ENTITY LeftRightArrow "↔" ><!--alias ISOAMSA harr --> +<!ENTITY Leftrightarrow "⇔" ><!--alias ISOAMSA hArr --> +<!ENTITY leftrightarrow "↔" ><!--alias ISOAMSA harr --> +<!ENTITY leftrightarrows "⇆" ><!--alias ISOAMSA lrarr --> +<!ENTITY leftrightharpoons "⇋" ><!--alias ISOAMSA lrhar --> +<!ENTITY leftrightsquigarrow "↭" ><!--alias ISOAMSA harrw --> +<!ENTITY LeftTee "⊣" ><!--alias ISOAMSR dashv --> +<!ENTITY LeftTeeArrow "↤" ><!--alias for mapstoleft --> +<!ENTITY leftthreetimes "⋋" ><!--alias ISOAMSB lthree --> +<!ENTITY LeftTriangle "⊲" ><!--alias ISOAMSR vltri --> +<!ENTITY LeftTriangleEqual "⊴" ><!--alias ISOAMSR ltrie --> +<!ENTITY LeftUpVector "↿" ><!--alias ISOAMSA uharl --> +<!ENTITY LeftVector "↼" ><!--alias ISOAMSA lharu --> +<!ENTITY leq "≤" ><!--alias ISOTECH le --> +<!ENTITY leqq "≦" ><!--alias ISOAMSR lE --> +<!ENTITY leqslant "⩽" ><!--alias ISOAMSR les --> +<!ENTITY lessapprox "≲" ><!--alias ISOAMSR lap --> +<!ENTITY lessdot "⋖" ><!--alias ISOAMSR ltdot --> +<!ENTITY lesseqgtr "⋚" ><!--alias ISOAMSR leg --> +<!ENTITY lesseqqgtr "⋚" ><!--alias ISOAMSR lEg --> +<!ENTITY LessEqualGreater "⋚" ><!--alias ISOAMSR leg --> +<!ENTITY LessFullEqual "≦" ><!--alias ISOAMSR lE --> +<!ENTITY LessGreater "≶" ><!--alias ISOAMSR lg --> +<!ENTITY lessgtr "≶" ><!--alias ISOAMSR lg --> +<!ENTITY lesssim "≲" ><!--alias ISOAMSR lsim --> +<!ENTITY LessSlantEqual "⩽" ><!--alias ISOAMSR les --> +<!ENTITY LessTilde "≲" ><!--alias ISOAMSR lsim --> +<!ENTITY ll "≪" ><!--alias ISOAMSR Lt --> +<!ENTITY llcorner "⌞" ><!--alias ISOAMSC dlcorn --> +<!ENTITY Lleftarrow "⇚" ><!--alias ISOAMSA lAarr --> +<!ENTITY lmoustache "⎰" ><!--alias ISOAMSC lmoust --> +<!ENTITY lnapprox "⪉" ><!--alias ISOAMSN lnap --> +<!ENTITY lneq "≨" ><!--alias ISOAMSN lne --> +<!ENTITY lneqq "≨" ><!--alias ISOAMSN lnE --> +<!ENTITY LongLeftArrow "⟵" ><!--alias ISOAMSA xlarr --> +<!ENTITY Longleftarrow "⟸" ><!--alias ISOAMSA xlArr --> +<!ENTITY longleftarrow "⟵" ><!--alias ISOAMSA xlarr --> +<!ENTITY LongLeftRightArrow "⟷" ><!--alias ISOAMSA xharr --> +<!ENTITY Longleftrightarrow "⟺" ><!--alias ISOAMSA xhArr --> +<!ENTITY longleftrightarrow "⟷" ><!--alias ISOAMSA xharr --> +<!ENTITY longmapsto "⟼" ><!--alias ISOAMSA xmap --> +<!ENTITY LongRightArrow "⟶" ><!--alias ISOAMSA xrarr --> +<!ENTITY Longrightarrow "⟹" ><!--alias ISOAMSA xrArr --> +<!ENTITY longrightarrow "⟶" ><!--alias ISOAMSA xrarr --> +<!ENTITY looparrowleft "↫" ><!--alias ISOAMSA larrlp --> +<!ENTITY looparrowright "↬" ><!--alias ISOAMSA rarrlp --> +<!ENTITY LowerLeftArrow "↙" ><!--alias ISOAMSA swarr --> +<!ENTITY LowerRightArrow "↘" ><!--alias ISOAMSA searr --> +<!ENTITY lozenge "◊" ><!--alias ISOPUB loz --> +<!ENTITY lrcorner "⌟" ><!--alias ISOAMSC drcorn --> +<!ENTITY Lsh "↰" ><!--alias ISOAMSA lsh --> +<!ENTITY lvertneqq "≨︀" ><!--alias ISOAMSN lvnE --> +<!ENTITY maltese "✠" ><!--alias ISOPUB malt --> +<!ENTITY mapsto "↦" ><!--alias ISOAMSA map --> +<!ENTITY measuredangle "∡" ><!--alias ISOAMSO angmsd --> +<!ENTITY Mellintrf "ℳ" ><!--Mellin transform --> +<!ENTITY MinusPlus "∓" ><!--alias ISOTECH mnplus --> +<!ENTITY mp "∓" ><!--alias ISOTECH mnplus --> +<!ENTITY multimap "⊸" ><!--alias ISOAMSA mumap --> +<!ENTITY napprox "≉" ><!--alias ISOAMSN nap --> +<!ENTITY natural "♮" ><!--alias ISOPUB natur --> +<!ENTITY naturals "ℕ" ><!--the semi-ring of natural numbers --> +<!ENTITY nearrow "↗" ><!--alias ISOAMSA nearr --> +<!ENTITY NegativeMediumSpace "​" ><!--space of width -4/18 em --> +<!ENTITY NegativeThickSpace "​" ><!--space of width -5/18 em --> +<!ENTITY NegativeThinSpace "​" ><!--space of width -3/18 em --> +<!ENTITY NegativeVeryThinSpace "​" ><!--space of width -1/18 em --> +<!ENTITY NestedGreaterGreater "≫" ><!--alias ISOAMSR Gt --> +<!ENTITY NestedLessLess "≪" ><!--alias ISOAMSR Lt --> +<!ENTITY nexists "∄" ><!--alias ISOAMSO nexist --> +<!ENTITY ngeq "≱" ><!--alias ISOAMSN nge --> +<!ENTITY ngeqq "⩾̸" ><!--alias ISOAMSN ngE --> +<!ENTITY ngeqslant "⩾̸" ><!--alias ISOAMSN nges --> +<!ENTITY ngtr "≯" ><!--alias ISOAMSN ngt --> +<!ENTITY nLeftarrow "⇍" ><!--alias ISOAMSA nlArr --> +<!ENTITY nleftarrow "↚" ><!--alias ISOAMSA nlarr --> +<!ENTITY nLeftrightarrow "⇎" ><!--alias ISOAMSA nhArr --> +<!ENTITY nleftrightarrow "↮" ><!--alias ISOAMSA nharr --> +<!ENTITY nleq "≰" ><!--alias ISOAMSN nle --> +<!ENTITY nleqq "⩽̸" ><!--alias ISOAMSN nlE --> +<!ENTITY nleqslant "⩽̸" ><!--alias ISOAMSN nles --> +<!ENTITY nless "≮" ><!--alias ISOAMSN nlt --> +<!ENTITY NonBreakingSpace " " ><!--alias ISONUM nbsp --> +<!ENTITY NotCongruent "≢" ><!--alias ISOAMSN nequiv --> +<!ENTITY NotDoubleVerticalBar "∦" ><!--alias ISOAMSN npar --> +<!ENTITY NotElement "∉" ><!--alias ISOTECH notin --> +<!ENTITY NotEqual "≠" ><!--alias ISOTECH ne --> +<!ENTITY NotEqualTilde "≂̸" ><!--alias for ≂̸ --> +<!ENTITY NotExists "∄" ><!--alias ISOAMSO nexist --> +<!ENTITY NotGreater "≯" ><!--alias ISOAMSN ngt --> +<!ENTITY NotGreaterEqual "≱" ><!--alias ISOAMSN nge --> +<!ENTITY NotGreaterFullEqual "⩽̸" ><!--alias ISOAMSN nlE --> +<!ENTITY NotGreaterGreater "≫̸" ><!--alias ISOAMSN nGtv --> +<!ENTITY NotGreaterLess "≹" ><!--alias ISOAMSN ntvgl --> +<!ENTITY NotGreaterSlantEqual "⩾̸" ><!--alias ISOAMSN nges --> +<!ENTITY NotGreaterTilde "≵" ><!--alias ISOAMSN ngsim --> +<!ENTITY NotHumpDownHump "≎̸" ><!--alias for ≎̸ --> +<!ENTITY NotLeftTriangle "⋪" ><!--alias ISOAMSN nltri --> +<!ENTITY NotLeftTriangleEqual "⋬" ><!--alias ISOAMSN nltrie --> +<!ENTITY NotLess "≮" ><!--alias ISOAMSN nlt --> +<!ENTITY NotLessEqual "≰" ><!--alias ISOAMSN nle --> +<!ENTITY NotLessGreater "≸" ><!--alias ISOAMSN ntvlg --> +<!ENTITY NotLessLess "≪̸" ><!--alias ISOAMSN nLtv --> +<!ENTITY NotLessSlantEqual "⩽̸" ><!--alias ISOAMSN nles --> +<!ENTITY NotLessTilde "≴" ><!--alias ISOAMSN nlsim --> +<!ENTITY NotPrecedes "⊀" ><!--alias ISOAMSN npr --> +<!ENTITY NotPrecedesEqual "⪯̸" ><!--alias ISOAMSN npre --> +<!ENTITY NotPrecedesSlantEqual "⋠" ><!--alias ISOAMSN nprcue --> +<!ENTITY NotReverseElement "∌" ><!--alias ISOTECH notniva --> +<!ENTITY NotRightTriangle "⋫" ><!--alias ISOAMSN nrtri --> +<!ENTITY NotRightTriangleEqual "⋭" ><!--alias ISOAMSN nrtrie --> +<!ENTITY NotSquareSubsetEqual "⋢" ><!--alias ISOAMSN nsqsube --> +<!ENTITY NotSquareSupersetEqual "⋣" ><!--alias ISOAMSN nsqsupe --> +<!ENTITY NotSubset "⊄" ><!--alias ISOAMSN vnsub --> +<!ENTITY NotSubsetEqual "⊈" ><!--alias ISOAMSN nsube --> +<!ENTITY NotSucceeds "⊁" ><!--alias ISOAMSN nsc --> +<!ENTITY NotSucceedsEqual "⪰̸" ><!--alias ISOAMSN nsce --> +<!ENTITY NotSucceedsSlantEqual "⋡" ><!--alias ISOAMSN nsccue --> +<!ENTITY NotSuperset "⊅" ><!--alias ISOAMSN vnsup --> +<!ENTITY NotSupersetEqual "⊉" ><!--alias ISOAMSN nsupe --> +<!ENTITY NotTilde "≁" ><!--alias ISOAMSN nsim --> +<!ENTITY NotTildeEqual "≄" ><!--alias ISOAMSN nsime --> +<!ENTITY NotTildeFullEqual "≇" ><!--alias ISOAMSN ncong --> +<!ENTITY NotTildeTilde "≉" ><!--alias ISOAMSN nap --> +<!ENTITY NotVerticalBar "∤" ><!--alias ISOAMSN nmid --> +<!ENTITY nparallel "∦" ><!--alias ISOAMSN npar --> +<!ENTITY nprec "⊀" ><!--alias ISOAMSN npr --> +<!ENTITY npreceq "⪯̸" ><!--alias ISOAMSN npre --> +<!ENTITY nRightarrow "⇏" ><!--alias ISOAMSA nrArr --> +<!ENTITY nrightarrow "↛" ><!--alias ISOAMSA nrarr --> +<!ENTITY nshortmid "∤" ><!--alias ISOAMSN nsmid --> +<!ENTITY nshortparallel "∦" ><!--alias ISOAMSN nspar --> +<!ENTITY nsimeq "≄" ><!--alias ISOAMSN nsime --> +<!ENTITY nsubset "⊄" ><!--alias ISOAMSN vnsub --> +<!ENTITY nsubseteq "⊈" ><!--alias ISOAMSN nsube --> +<!ENTITY nsubseteqq "⊈" ><!--alias ISOAMSN nsubE --> +<!ENTITY nsucc "⊁" ><!--alias ISOAMSN nsc --> +<!ENTITY nsucceq "⪰̸" ><!--alias ISOAMSN nsce --> +<!ENTITY nsupset "⊅" ><!--alias ISOAMSN vnsup --> +<!ENTITY nsupseteq "⊉" ><!--alias ISOAMSN nsupe --> +<!ENTITY nsupseteqq "⊉" ><!--alias ISOAMSN nsupE --> +<!ENTITY ntriangleleft "⋪" ><!--alias ISOAMSN nltri --> +<!ENTITY ntrianglelefteq "⋬" ><!--alias ISOAMSN nltrie --> +<!ENTITY ntriangleright "⋫" ><!--alias ISOAMSN nrtri --> +<!ENTITY ntrianglerighteq "⋭" ><!--alias ISOAMSN nrtrie --> +<!ENTITY nwarrow "↖" ><!--alias ISOAMSA nwarr --> +<!ENTITY oint "∮" ><!--alias ISOTECH conint --> +<!ENTITY OpenCurlyDoubleQuote "“" ><!--alias ISONUM ldquo --> +<!ENTITY OpenCurlyQuote "‘" ><!--alias ISONUM lsquo --> +<!ENTITY orderof "ℴ" ><!--alias ISOTECH order --> +<!ENTITY parallel "∥" ><!--alias ISOTECH par --> +<!ENTITY PartialD "∂" ><!--alias ISOTECH part --> +<!ENTITY pitchfork "⋔" ><!--alias ISOAMSR fork --> +<!ENTITY PlusMinus "±" ><!--alias ISONUM plusmn --> +<!ENTITY pm "±" ><!--alias ISONUM plusmn --> +<!ENTITY Poincareplane "ℌ" ><!--the Poincare upper half-plane --> +<!ENTITY prec "≺" ><!--alias ISOAMSR pr --> +<!ENTITY precapprox "≾" ><!--alias ISOAMSR prap --> +<!ENTITY preccurlyeq "≼" ><!--alias ISOAMSR prcue --> +<!ENTITY Precedes "≺" ><!--alias ISOAMSR pr --> +<!ENTITY PrecedesEqual "⪯" ><!--alias ISOAMSR pre --> +<!ENTITY PrecedesSlantEqual "≼" ><!--alias ISOAMSR prcue --> +<!ENTITY PrecedesTilde "≾" ><!--alias ISOAMSR prsim --> +<!ENTITY preceq "⪯" ><!--alias ISOAMSR pre --> +<!ENTITY precnapprox "⋨" ><!--alias ISOAMSN prnap --> +<!ENTITY precneqq "⪵" ><!--alias ISOAMSN prnE --> +<!ENTITY precnsim "⋨" ><!--alias ISOAMSN prnsim --> +<!ENTITY precsim "≾" ><!--alias ISOAMSR prsim --> +<!ENTITY primes "ℙ" ><!--the prime natural numbers --> +<!ENTITY Proportion "∷" ><!--alias ISOAMSR Colon --> +<!ENTITY Proportional "∝" ><!--alias ISOTECH prop --> +<!ENTITY propto "∝" ><!--alias ISOTECH prop --> +<!ENTITY quaternions "ℍ" ><!--the ring (skew field) of quaternions --> +<!ENTITY questeq "≟" ><!--alias ISOAMSR equest --> +<!ENTITY rangle "〉" ><!--alias ISOTECH rang --> +<!ENTITY rationals "ℚ" ><!--the field of rational numbers --> +<!ENTITY rbrace "}" ><!--alias ISONUM rcub --> +<!ENTITY rbrack "]" ><!--alias ISONUM rsqb --> +<!ENTITY Re "ℜ" ><!--alias ISOAMSO real --> +<!ENTITY realine "ℛ" ><!--the geometric real line --> +<!ENTITY realpart "ℜ" ><!--alias ISOAMSO real --> +<!ENTITY reals "ℝ" ><!--the field of real numbers --> +<!ENTITY ReverseElement "∋" ><!--alias ISOTECH niv --> +<!ENTITY ReverseEquilibrium "⇋" ><!--alias ISOAMSA lrhar --> +<!ENTITY ReverseUpEquilibrium "⥯" ><!--alias ISOAMSA duhar --> +<!ENTITY RightAngleBracket "〉" ><!--alias ISOTECH rang --> +<!ENTITY RightArrow "→" ><!--alias ISONUM rarr --> +<!ENTITY Rightarrow "⇒" ><!--alias ISOTECH rArr --> +<!ENTITY rightarrow "→" ><!--alias ISONUM rarr --> +<!ENTITY RightArrowBar "⇥" ><!--alias for rarrb --> +<!ENTITY RightArrowLeftArrow "⇄" ><!--alias ISOAMSA rlarr --> +<!ENTITY rightarrowtail "↣" ><!--alias ISOAMSA rarrtl --> +<!ENTITY RightCeiling "⌉" ><!--alias ISOAMSC rceil --> +<!ENTITY RightDoubleBracket "〛" ><!--right double bracket delimiter --> +<!ENTITY RightDownVector "⇂" ><!--alias ISOAMSA dharr --> +<!ENTITY RightFloor "⌋" ><!--alias ISOAMSC rfloor --> +<!ENTITY rightharpoondown "⇁" ><!--alias ISOAMSA rhard --> +<!ENTITY rightharpoonup "⇀" ><!--alias ISOAMSA rharu --> +<!ENTITY rightleftarrows "⇄" ><!--alias ISOAMSA rlarr --> +<!ENTITY rightleftharpoons "⇌" ><!--alias ISOAMSA rlhar --> +<!ENTITY rightrightarrows "⇉" ><!--alias ISOAMSA rrarr --> +<!ENTITY rightsquigarrow "↝" ><!--alias ISOAMSA rarrw --> +<!ENTITY RightTee "⊢" ><!--alias ISOAMSR vdash --> +<!ENTITY RightTeeArrow "↦" ><!--alias ISOAMSA map --> +<!ENTITY rightthreetimes "⋌" ><!--alias ISOAMSB rthree --> +<!ENTITY RightTriangle "⊳" ><!--alias ISOAMSR vrtri --> +<!ENTITY RightTriangleEqual "⊵" ><!--alias ISOAMSR rtrie --> +<!ENTITY RightUpVector "↾" ><!--alias ISOAMSA uharr --> +<!ENTITY RightVector "⇀" ><!--alias ISOAMSA rharu --> +<!ENTITY risingdotseq "≓" ><!--alias ISOAMSR erDot --> +<!ENTITY rmoustache "⎱" ><!--alias ISOAMSC rmoust --> +<!ENTITY Rrightarrow "⇛" ><!--alias ISOAMSA rAarr --> +<!ENTITY Rsh "↱" ><!--alias ISOAMSA rsh --> +<!ENTITY searrow "↘" ><!--alias ISOAMSA searr --> +<!ENTITY setminus "∖" ><!--alias ISOAMSB setmn --> +<!ENTITY ShortDownArrow "↓" ><!--short down arrow --> +<!ENTITY ShortLeftArrow "←" ><!--alias ISOAMSA slarr --> +<!ENTITY shortmid "∣" ><!--alias ISOAMSR smid --> +<!ENTITY shortparallel "∥" ><!--alias ISOAMSR spar --> +<!ENTITY ShortRightArrow "→" ><!--alias ISOAMSA srarr --> +<!ENTITY ShortUpArrow "↑" ><!--short up arrow --> +<!ENTITY simeq "≃" ><!--alias ISOTECH sime --> +<!ENTITY SmallCircle "∘" ><!--alias ISOTECH compfn --> +<!ENTITY smallsetminus "∖" ><!--alias ISOAMSB ssetmn --> +<!ENTITY spadesuit "♠" ><!--ISOPUB spades --> +<!ENTITY Sqrt "√" ><!--alias ISOTECH radic --> +<!ENTITY sqsubset "⊏" ><!--alias ISOAMSR sqsub --> +<!ENTITY sqsubseteq "⊑" ><!--alias ISOAMSR sqsube --> +<!ENTITY sqsupset "⊐" ><!--alias ISOAMSR sqsup --> +<!ENTITY sqsupseteq "⊒" ><!--alias ISOAMSR sqsupe --> +<!ENTITY Square "□" ><!--alias for square --> +<!ENTITY SquareIntersection "⊓" ><!--alias ISOAMSB sqcap --> +<!ENTITY SquareSubset "⊏" ><!--alias ISOAMSR sqsub --> +<!ENTITY SquareSubsetEqual "⊑" ><!--alias ISOAMSR sqsube --> +<!ENTITY SquareSuperset "⊐" ><!--alias ISOAMSR sqsup --> +<!ENTITY SquareSupersetEqual "⊒" ><!--alias ISOAMSR sqsupe --> +<!ENTITY SquareUnion "⊔" ><!--alias ISOAMSB sqcup --> +<!ENTITY Star "⋆" ><!--alias ISOAMSB sstarf --> +<!ENTITY straightepsilon "ε" ><!--alias ISOGRK3 epsi --> +<!ENTITY straightphi "ϕ" ><!--alias ISOGRK3 phi --> +<!ENTITY Subset "⋐" ><!--alias ISOAMSR Sub --> +<!ENTITY subset "⊂" ><!--alias ISOTECH sub --> +<!ENTITY subseteq "⊆" ><!--alias ISOTECH sube --> +<!ENTITY subseteqq "⊆" ><!--alias ISOAMSR subE --> +<!ENTITY SubsetEqual "⊆" ><!--alias ISOTECH sube --> +<!ENTITY subsetneq "⊊" ><!--alias ISOAMSN subne --> +<!ENTITY subsetneqq "⊊" ><!--alias ISOAMSN subnE --> +<!ENTITY succ "≻" ><!--alias ISOAMSR sc --> +<!ENTITY succapprox "≿" ><!--alias ISOAMSR scap --> +<!ENTITY succcurlyeq "≽" ><!--alias ISOAMSR sccue --> +<!ENTITY Succeeds "≻" ><!--alias ISOAMSR sc --> +<!ENTITY SucceedsEqual "≽" ><!--alias ISOAMSR sce --> +<!ENTITY SucceedsSlantEqual "≽" ><!--alias ISOAMSR sccue --> +<!ENTITY SucceedsTilde "≿" ><!--alias ISOAMSR scsim --> +<!ENTITY succeq "≽" ><!--alias ISOAMSR sce --> +<!ENTITY succnapprox "⋩" ><!--alias ISOAMSN scnap --> +<!ENTITY succneqq "⪶" ><!--alias ISOAMSN scnE --> +<!ENTITY succnsim "⋩" ><!--alias ISOAMSN scnsim --> +<!ENTITY succsim "≿" ><!--alias ISOAMSR scsim --> +<!ENTITY SuchThat "∋" ><!--ISOTECH ni --> +<!ENTITY Sum "∑" ><!--alias ISOAMSB sum --> +<!ENTITY Superset "⊃" ><!--alias ISOTECH sup --> +<!ENTITY SupersetEqual "⊇" ><!--alias ISOTECH supe --> +<!ENTITY Supset "⋑" ><!--alias ISOAMSR Sup --> +<!ENTITY supset "⊃" ><!--alias ISOTECH sup --> +<!ENTITY supseteq "⊇" ><!--alias ISOTECH supe --> +<!ENTITY supseteqq "⊇" ><!--alias ISOAMSR supE --> +<!ENTITY supsetneq "⊋" ><!--alias ISOAMSN supne --> +<!ENTITY supsetneqq "⊋" ><!--alias ISOAMSN supnE --> +<!ENTITY swarrow "↙" ><!--alias ISOAMSA swarr --> +<!ENTITY Therefore "∴" ><!--alias ISOTECH there4 --> +<!ENTITY therefore "∴" ><!--alias ISOTECH there4 --> +<!ENTITY thickapprox "≈" ><!--ISOAMSR thkap --> +<!ENTITY thicksim "∼" ><!--ISOAMSR thksim --> +<!ENTITY ThinSpace " " ><!--space of width 3/18 em alias ISOPUB thinsp --> +<!ENTITY Tilde "∼" ><!--alias ISOTECH sim --> +<!ENTITY TildeEqual "≃" ><!--alias ISOTECH sime --> +<!ENTITY TildeFullEqual "≅" ><!--alias ISOTECH cong --> +<!ENTITY TildeTilde "≈" ><!--alias ISOTECH ap --> +<!ENTITY toea "⤨" ><!--alias ISOAMSA nesear --> +<!ENTITY tosa "⤩" ><!--alias ISOAMSA seswar --> +<!ENTITY triangle "▵" ><!--alias ISOPUB utri --> +<!ENTITY triangledown "▿" ><!--alias ISOPUB dtri --> +<!ENTITY triangleleft "◃" ><!--alias ISOPUB ltri --> +<!ENTITY trianglelefteq "⊴" ><!--alias ISOAMSR ltrie --> +<!ENTITY triangleq "≜" ><!--alias ISOAMSR trie --> +<!ENTITY triangleright "▹" ><!--alias ISOPUB rtri --> +<!ENTITY trianglerighteq "⊵" ><!--alias ISOAMSR rtrie --> +<!ENTITY TripleDot "⃛" ><!--alias ISOTECH tdot --> +<!ENTITY twoheadleftarrow "↞" ><!--alias ISOAMSA Larr --> +<!ENTITY twoheadrightarrow "↠" ><!--alias ISOAMSA Rarr --> +<!ENTITY ulcorner "⌜" ><!--alias ISOAMSC ulcorn --> +<!ENTITY Union "⋃" ><!--alias ISOAMSB xcup --> +<!ENTITY UnionPlus "⊎" ><!--alias ISOAMSB uplus --> +<!ENTITY UpArrow "↑" ><!--alias ISONUM uarr --> +<!ENTITY Uparrow "⇑" ><!--alias ISOAMSA uArr --> +<!ENTITY uparrow "↑" ><!--alias ISONUM uarr --> +<!ENTITY UpArrowDownArrow "⇅" ><!--alias ISOAMSA udarr --> +<!ENTITY UpDownArrow "↕" ><!--alias ISOAMSA varr --> +<!ENTITY Updownarrow "⇕" ><!--alias ISOAMSA vArr --> +<!ENTITY updownarrow "↕" ><!--alias ISOAMSA varr --> +<!ENTITY UpEquilibrium "⥮" ><!--alias ISOAMSA udhar --> +<!ENTITY upharpoonleft "↿" ><!--alias ISOAMSA uharl --> +<!ENTITY upharpoonright "↾" ><!--alias ISOAMSA uharr --> +<!ENTITY UpperLeftArrow "↖" ><!--alias ISOAMSA nwarr --> +<!ENTITY UpperRightArrow "↗" ><!--alias ISOAMSA nearr --> +<!ENTITY upsilon "υ" ><!--alias ISOGRK3 upsi --> +<!ENTITY UpTee "⊥" ><!--alias ISOTECH perp --> +<!ENTITY UpTeeArrow "↥" ><!--Alias mapstoup --> +<!ENTITY upuparrows "⇈" ><!--alias ISOAMSA uuarr --> +<!ENTITY urcorner "⌝" ><!--alias ISOAMSC urcorn --> +<!ENTITY varepsilon "ɛ" ><!--alias ISOGRK3 epsiv --> +<!ENTITY varkappa "ϰ" ><!--alias ISOGRK3 kappav --> +<!ENTITY varnothing "∅" ><!--alias ISOAMSO emptyv --> +<!ENTITY varphi "φ" ><!--alias ISOGRK3 phiv --> +<!ENTITY varpi "ϖ" ><!--alias ISOGRK3 piv --> +<!ENTITY varpropto "∝" ><!--alias ISOAMSR vprop --> +<!ENTITY varrho "ϱ" ><!--alias ISOGRK3 rhov --> +<!ENTITY varsigma "ς" ><!--alias ISOGRK3 sigmav --> +<!ENTITY varsubsetneq "⊊︀" ><!--alias ISOAMSN vsubne --> +<!ENTITY varsubsetneqq "⊊︀" ><!--alias ISOAMSN vsubnE --> +<!ENTITY varsupsetneq "⊋︀" ><!--alias ISOAMSN vsupne --> +<!ENTITY varsupsetneqq "⊋︀" ><!--alias ISOAMSN vsupnE --> +<!ENTITY vartheta "ϑ" ><!--alias ISOGRK3 thetav --> +<!ENTITY vartriangleleft "⊲" ><!--alias ISOAMSR vltri --> +<!ENTITY vartriangleright "⊳" ><!--alias ISOAMSR vrtri --> +<!ENTITY Vee "⋁" ><!--alias ISOAMSB xvee --> +<!ENTITY vee "∨" ><!--alias ISOTECH or --> +<!ENTITY Vert "‖" ><!--alias ISOTECH Verbar --> +<!ENTITY vert "|" ><!--alias ISONUM verbar --> +<!ENTITY VerticalBar "∣" ><!--alias ISOAMSR mid --> +<!ENTITY VerticalTilde "≀" ><!--alias ISOAMSB wreath --> +<!ENTITY VeryThinSpace " " ><!--space of width 1/18 em alias ISOPUB hairsp --> +<!ENTITY Wedge "⋀" ><!--alias ISOAMSB xwedge --> +<!ENTITY wedge "∧" ><!--alias ISOTECH and --> +<!ENTITY wp "℘" ><!--alias ISOAMSO weierp --> +<!ENTITY wr "≀" ><!--alias ISOAMSB wreath --> +<!ENTITY zeetrf "ℨ" ><!--zee transform --> + + +<!-- end of MathML Character Entity section -->]]> + +<!-- Revision History: + + Initial draft (syntax = XML) 1997-05-09 + Stephen Buswell + Revised 1997-05-14 + Robert Miner + Revised 1997-06-29 and 1997-07-02 + Stephen Buswell + Revised 1997-12-15 + Stephen Buswell + Revised 1998-02-08 + Stephen Buswell + Revised 1998-04-04 + Stephen Buswell + Entities and small revisions 1999-02-21 + David Carlisle + Added attribute definitionURL to ci and cn 1999-10-11 + Nico Poppelier + Additions for MathML 2 1999-12-16 + David Carlisle + Namespace support 2000-01-14 + David Carlisle + XHTML Compatibility 2000-02-23 + Murray Altheim + New content elements 2000-03-26 + David Carlisle + Further revisions for MathML2 CR draft 2000-07-11 + David Carlisle + Further revisions for MathML2 CR draft 2000-10-31 + David Carlisle + Revisions for Unicode 3.2 2002-05-21 + David Carlisle + Add width and side attributes to mtable (to align with the specification) 2002-06-05 + David Carlisle + Use %XLINK.prefix rather than hardwired xlink:, add xlink:type 2002-06-12 + David Carlisle + Add missing numalign and denomalign attributes for mfrac 2002-07-05 + David Carlisle + +--> + +<!-- end of MathML 2.0 DTD ................................................ --> +<!-- ....................................................................... --> + + +]]> + +<!-- end of xhtml-math-svg.dtd --> diff --git a/htdocs/sgml-lib/xml.dcl b/htdocs/sgml-lib/xml.dcl new file mode 100644 index 0000000..7049a8b --- /dev/null +++ b/htdocs/sgml-lib/xml.dcl @@ -0,0 +1,191 @@ +<!SGML "ISO 8879:1986 (WWW)" + + -- SGML Declaration for XML 1.0 -- + + -- from: + Final text of revised Web SGML Adaptations Annex (TC2) to ISO 8879:1986 + ISO/IEC JTC1/SC34 N0029: 1998-12-06 + Annex L.2 (informative): SGML Declaration for XML + + changes made to accommodate validation are noted with 'VALID:' + -- + + CHARSET + BASESET + "ISO Registration Number 177//CHARSET + ISO/IEC 10646-1:1993 UCS-4 with implementation + level 3//ESC 2/5 2/15 4/6" + DESCSET + 0 9 UNUSED + 9 2 9 + 11 2 UNUSED + 13 1 13 + 14 18 UNUSED + 32 95 32 + 127 1 UNUSED + 128 32 UNUSED + 160 55136 160 + 55296 2048 UNUSED -- surrogates -- + 57344 8190 57344 + 65534 2 UNUSED -- FFFE and FFFF -- + 65536 1048576 65536 + 1114112 14680064 1114112 -- Outside BMP -- + + + + CAPACITY NONE -- Capacities are not restricted in XML -- + + SCOPE DOCUMENT + + SYNTAX + SHUNCHAR NONE + BASESET "ISO Registration Number 177//CHARSET + ISO/IEC 10646-1:1993 UCS-4 with implementation + level 3//ESC 2/5 2/15 4/6" + DESCSET + 0 1114112 0 + FUNCTION + RE 13 + RS 10 + SPACE 32 + TAB SEPCHAR 9 + NAMING + LCNMSTRT "" + UCNMSTRT "" + NAMESTRT + 58 95 192-214 216-246 248-305 308-318 321-328 + 330-382 384-451 461-496 500-501 506-535 592-680 + 699-705 902 904-906 908 910-929 931-974 976-982 + 986 988 990 992 994-1011 1025-1036 1038-1103 + 1105-1116 1118-1153 1168-1220 1223-1224 + 1227-1228 1232-1259 1262-1269 1272-1273 + 1329-1366 1369 1377-1414 1488-1514 1520-1522 + 1569-1594 1601-1610 1649-1719 1722-1726 + 1728-1742 1744-1747 1749 1765-1766 2309-2361 + 2365 2392-2401 2437-2444 2447-2448 2451-2472 + 2474-2480 2482 2486-2489 2524-2525 2527-2529 + 2544-2545 2565-2570 2575-2576 2579-2600 + 2602-2608 2610-2611 2613-2614 2616-2617 + 2649-2652 2654 2674-2676 2693-2699 2701 + 2703-2705 2707-2728 2730-2736 2738-2739 + 2741-2745 2749 2784 2821-2828 2831-2832 + 2835-2856 2858-2864 2866-2867 2870-2873 2877 + 2908-2909 2911-2913 2949-2954 2958-2960 + 2962-2965 2969-2970 2972 2974-2975 2979-2980 + 2984-2986 2990-2997 2999-3001 3077-3084 + 3086-3088 3090-3112 3114-3123 3125-3129 + 3168-3169 3205-3212 3214-3216 3218-3240 + 3242-3251 3253-3257 3294 3296-3297 3333-3340 + 3342-3344 3346-3368 3370-3385 3424-3425 + 3585-3630 3632 3634-3635 3648-3653 3713-3714 + 3716 3719-3720 3722 3725 3732-3735 3737-3743 + 3745-3747 3749 3751 3754-3755 3757-3758 3760 + 3762-3763 3773 3776-3780 3904-3911 3913-3945 + 4256-4293 4304-4342 4352 4354-4355 4357-4359 + 4361 4363-4364 4366-4370 4412 4414 4416 4428 + 4430 4432 4436-4437 4441 4447-4449 4451 4453 + 4455 4457 4461-4462 4466-4467 4469 4510 4520 + 4523 4526-4527 4535-4536 4538 4540-4546 4587 + 4592 4601 7680-7835 7840-7929 7936-7957 + 7960-7965 7968-8005 8008-8013 8016-8023 8025 + 8027 8029 8031-8061 8064-8116 8118-8124 8126 + 8130-8132 8134-8140 8144-8147 8150-8155 + 8160-8172 8178-8180 8182-8188 8486 8490-8491 + 8494 8576-8578 12295 12321-12329 12353-12436 + 12449-12538 12549-12588 19968-40869 44032-55203 + + LCNMCHAR "" + UCNMCHAR "" + NAMECHAR + 45-46 183 720-721 768-837 864-865 903 1155-1158 + 1425-1441 1443-1465 1467-1469 1471 1473-1474 + 1476 1600 1611-1618 1632-1641 1648 1750-1764 + 1767-1768 1770-1773 1776-1785 2305-2307 2364 + 2366-2381 2385-2388 2402-2403 2406-2415 + 2433-2435 2492 2494-2500 2503-2504 2507-2509 + 2519 2530-2531 2534-2543 2562 2620 2622-2626 + 2631-2632 2635-2637 2662-2673 2689-2691 2748 + 2750-2757 2759-2761 2763-2765 2790-2799 + 2817-2819 2876 2878-2883 2887-2888 2891-2893 + 2902-2903 2918-2927 2946-2947 3006-3010 + 3014-3016 3018-3021 3031 3047-3055 3073-3075 + 3134-3140 3142-3144 3146-3149 3157-3158 + 3174-3183 3202-3203 3262-3268 3270-3272 + 3274-3277 3285-3286 3302-3311 3330-3331 + 3390-3395 3398-3400 3402-3405 3415 3430-3439 + 3633 3636-3642 3654-3662 3664-3673 3761 + 3764-3769 3771-3772 3782 3784-3789 3792-3801 + 3864-3865 3872-3881 3893 3895 3897 3902-3903 + 3953-3972 3974-3979 3984-3989 3991 3993-4013 + 4017-4023 4025 8400-8412 8417 12293 12330-12335 + 12337-12341 12441-12442 12445-12446 12540-12542 + + NAMECASE + GENERAL NO + ENTITY NO + DELIM + GENERAL SGMLREF + HCRO "&#x" + -- Ampersand followed by "#x" (without quotes) -- + NESTC "/" + NET ">" + PIC "?>" + SHORTREF NONE + + NAMES + SGMLREF + + QUANTITY + NONE -- Quantities are not restricted in XML -- + + ENTITIES + "amp" 38 + "lt" 60 + "gt" 62 + "quot" 34 + "apos" 39 + + FEATURES + MINIMIZE + DATATAG NO + OMITTAG NO + RANK NO + SHORTTAG + STARTTAG + EMPTY NO + UNCLOSED NO + NETENABL IMMEDNET + ENDTAG + EMPTY NO + UNCLOSED NO + ATTRIB + DEFAULT YES + OMITNAME NO + VALUE NO + EMPTYNRM YES + IMPLYDEF + ATTLIST NO -- VALID: was YES -- + DOCTYPE NO + ELEMENT NO -- VALID: was YES -- + ENTITY NO + NOTATION NO -- VALID: was YES -- + LINK + SIMPLE NO + IMPLICIT NO + EXPLICIT NO + OTHER + CONCUR NO + SUBDOC NO + FORMAL NO + URN NO + KEEPRSRE YES + VALIDITY TYPE -- VALID: was NOASSERT -- + ENTITIES + REF ANY + INTEGRAL YES + + APPINFO NONE + + SEEALSO "ISO 8879//NOTATION Extensible Markup Language (XML) 1.0//EN" +> + diff --git a/htdocs/sgml-lib/xml.soc b/htdocs/sgml-lib/xml.soc new file mode 100644 index 0000000..8155daa --- /dev/null +++ b/htdocs/sgml-lib/xml.soc @@ -0,0 +1,87 @@ +SGMLDECL "xml.dcl" +OVERRIDE YES + +PUBLIC "-//W3C//DTD Specification V2.0//EN" "http://www.w3.org/XML/1998/06/xmlspec-v20.dtd" +SYSTEM "spec.dtd" "http://www.w3.org/XML/1998/06/xmlspec-v20.dtd" + +-- MathMLL 2.0 Catalog Data File -- +-- MathML 2.0 DTD driver -- + +PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" + "REC-MathML2-20010221/xhtml-math11-f.dtd" +PUBLIC "-//W3C//DTD MathML 2.0//EN" + "REC-MathML2-20010221/mathml2.dtd" + +SYSTEM "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" + "REC-MathML2-20010221/xhtml-math11-f.dtd" +SYSTEM "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd" + "REC-MathML2-20010221/mathml2.dtd" + +-- XHTML + MathML + SVG -- +PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" + "xhtml-math-svg-flat-20020809.dtd" + +PUBLIC "-//W3C//DTD SVG 20010719//EN" PR-SVG-20010719/svg10.dtd +PUBLIC "-//W3C//DTD SVG 1.0//EN" REC-SVG-20010904/svg10.dtd + +-- XHTML 1.0/1.1/Basic Catalog Data File -- + +-- XHTML 1.1 DTD modular driver file -- +-- note that this uses the local, flattened version of the DTD. If you want + your catalog to use the master version of the XHTML Modules, change the + entry to reference xhtml11.dtd instead of xhtml11-flat.dtd +-- + +PUBLIC "-//W3C//DTD XHTML 1.1//EN" "REC-xhtml11-20010531/xhtml11-flat.dtd" + + +-- XHTML 1.1 framework modules -- +PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" "REC-xhtml11-20010531/xhtml11-model-1.mod" + + -- Oasis entity catalog for Extensible HTML 1.0 -- + +PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "REC-xhtml1-20020801/xhtml1-strict.dtd" +PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "REC-xhtml1-20020801/xhtml1-transitional.dtd" +PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "REC-xhtml1-20020801/xhtml1-frameset.dtd" + + -- ISO latin 1 entity set for Extensible HTML (XML 1.0 format) -- + +PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "REC-xhtml1-20020801/xhtml-lat1.ent" +PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN" "REC-xhtml1-20020801/xhtml-symbol.ent" +PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" "REC-xhtml1-20020801/xhtml-special.ent" + + -- XHTML Basic DTD modular driver file -- +PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "REC-xhtml-basic-20001219/xhtml-basic10.dtd" + + -- XHTML Basic framework module -- +PUBLIC "-//W3C//ENTITIES XHTML Basic 1.0 Document Model 1.0//EN" "REC-xhtml-basic-20001219/xhtml-basic10-model-1.mod" + +-- SGML Open Catalog file for SMIL 1.0/2.0 + + This is SMIL 1.0/2.0. + Copyright 2000 W3C (MIT, INRIA, Keio), All Rights Reserved. +-- +-- DTD drivers -- +PUBLIC "-//W3C//DTD SMIL 1.0//EN" REC-smil-19980615/smil10.dtd +PUBLIC "-//W3C//DTD SMIL 2.0//EN" PR-smil20-20010605/SMIL20.dtd +PUBLIC "-//W3C//DTD SMIL 2.0 Basic//EN" PR-smil20-20010605/SMIL20Basic.dtd + +-- Framework utilities --- +PUBLIC "-//W3C//ENTITIES SMIL 2.0 Modular Framework 1.0//EN" PR-smil20-20010605/smil-framework-1.mod +PUBLIC "-//W3C//ENTITIES SMIL 2.0 Datatypes 1.0//EN" PR-smil20-20010605/smil-datatypes-1.mod +PUBLIC "-//W3C//ENTITIES SMIL 2.0 Qualified Names 1.0//EN" PR-smil20-20010605/smil-qname-1.mod +PUBLIC "-//W3C//ENTITIES SMIL 2.0 Common Attributes 1.0//EN" PR-smil20-20010605/smil-attribs-1.mod +PUBLIC "-//W3C//ENTITIES SMIL 2.0 Document Model 1.0//EN" PR-smil20-20010605/smil-model-1.mod + +-- SMIL 2.0 elements from section modules --- +PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Document Structure//EN" PR-smil20-20010605/SMIL-struct.mod +PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Animation//EN" PR-smil20-20010605/SMIL-anim.mod +PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Content Control//EN" PR-smil20-20010605/SMIL-control.mod +PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Document Metainformation//EN" PR-smil20-20010605/SMIL-metainformation.mod +PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Layout//EN" PR-smil20-20010605/SMIL-layout.mod +PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Linking//EN" PR-smil20-20010605/SMIL-link.mod +PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Media Objects//EN" PR-smil20-20010605/SMIL-media.mod +PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Timing//EN" PR-smil20-20010605/SMIL-timing.mod +PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Transition//EN" PR-smil20-20010605/SMIL-transition.mod +PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Integration//EN" PR-smil20-20010605/SMIL-integrate.mod + diff --git a/htdocs/source/index.html b/htdocs/source/index.html index 8ceec6e..a5afdb0 100755 --- a/htdocs/source/index.html +++ b/htdocs/source/index.html @@ -1,9 +1,10 @@ -<!--#set var="revision" value="\$Id: index.html,v 1.17 2002-02-11 22:09:10 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:10 $" +<!--#set var="revision" value="\$Id: index.html,v 1.18 2002-08-20 01:51:30 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:30 $" --><!--#set var="title" value="Source Code Availability for The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="../" +--><!--#include virtual="../header.html" --> -<p> +<p id="skip"> The source code for the <a href="../">W3C HTML Validation Service</a> is available under the terms of the <a href="http://www.w3.org/Consortium/Legal/copyright-software">W3C @@ -135,7 +136,9 @@ <p> For information on current development activity, see the <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator - mailing list archives</a>. + mailing list archives</a>. To join in dicsussions about the Validator, + please join us in the <code>#validator</code> IRC channel on + <code>irc.OpenProjects.net</code>. </p> <p> @@ -160,7 +163,7 @@ mailing list</a>. </p> -<!--#include virtual="/footer.html" --> +<!--#include virtual="../footer.html" --> </body> </html> diff --git a/htdocs/tips.css b/htdocs/tips.css new file mode 100644 index 0000000..1d7d2c4 --- /dev/null +++ b/htdocs/tips.css @@ -0,0 +1,53 @@ +/* + Quality Tips Style Sheet for the W3C HTML Validation Service. + + Copyright 2000 W3C (MIT, INRIA, Keio). All Rights Reserved. + See http://www.w3.org/Consortium/Legal/ipr-notice.html#Copyright + + $Id: tips.css,v 1.2 2002-08-20 01:51:23 link Exp $ +*/ + + +dl.tip { +/* float: right; */ + text-align: justify; +/* width: 25ex; */ + margin-top: 0em; + background: #eeeeee; + border-top: 1px solid black; + border-bottom: 1px solid black; +} + +dl.tip dt a { + text-decoration: none; + color: inherit; +} + +dl.tip dt { + text-align: center; + padding: 0em; + margin: 0em; + color: black; + background: #eeeeee; +} + +dl.tip dd { + text-align: center; + text-decoration: none; + font-weight: bolder; + margin: .5em; + color: blue; +/* border: .1em dashed black; */ +} + +/ * dl.tip dd a:hover { + color: blue; + background: silver; +} */ + +dl.tip dd a { + padding: .1em .25em; + text-decoration: none; + margin: .5em; + display: block; +}
\ No newline at end of file diff --git a/htdocs/todo.html b/htdocs/todo.html index 5cf6419..44d7454 100755 --- a/htdocs/todo.html +++ b/htdocs/todo.html @@ -1,202 +1,346 @@ -<!--#set var="revision" value="\$Id: todo.html,v 1.49 2002-03-02 21:46:33 link Exp $" ---><!--#set var="date" value="\$Date: 2002-03-02 21:46:33 $" +<!--#set var="revision" value="\$Id: todo.html,v 1.50 2002-08-20 01:51:23 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:23 $" --><!--#set var="title" value="TODO List for The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> - <p class="intro"> - This page has the to-do list for the <a href="/">W3C HTML Validation - Service</a>, including bugs that need fixing and general wishlist items. - See also the +--><!--#set var="relroot" value="./" +--><!--#include virtual="header.html" --> + <p id="skip" class="intro"> + This page has the to-do list for the <a href="./"><acronym + title="World Wide Web Consortium">W3C</acronym> <acronym + title="HyperText Markup Language">HTML</acronym> + Validation Service</a>, including bugs that need fixing and general + wishlist items. See also the <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator mailing list archives</a> for recent discussion that may not be reflected on this page. </p> <p> - These items are roughly in prioritized order; i.e. the items near the - top are those which I consider most important. + Recently, we're trying something new. <code>:-)</code> We're going to + start splitting development into "releases"; that is milestones with a + version number. We've done a few allready, arbitrarily named 0.5.0 and + 0.5.1, that mainly existed as CVS tags to make bug fixing easier. Right + now I'm trying to stretch this concept a little further by planning + features for future versions in advance. </p> - - <ol> - <li>Finish up the textarea for testing short HTML fragments.</li> - <li>Fix up all absolute URIs to be relative (to aid local installations). Thanks to Alex Holst.</li> - <li> - Add a "fix my HTML for me" option using <a - href="http://www.w3.org/People/Raggett/tidy/">Tidy</a>. - </li> - <li> - Finish adding support for XML validation (see also: - <a href="dev/tests/#xml">test cases</a>, or - <a href="http://www.hcrc.ed.ac.uk/~richard/xml-check.html">an - existing service</a>). - </li> - <li> - Update <a href="/sgml-lib.tar.gz">sgml-lib.tar.gz</a>; - automate the updates. - </li> - <li> - Make lists of "most frequently validated invalid pages" - and "most frequently validated (non-W3C?) valid pages" - (need to start logging stuff first, including IPs to compare - uniqueness). - </li> - <li> - Add a section to the report on - <a href="http://www.mnot.net/cacheability/">document cacheability</a>? - (or just link to it?) - </li> - <li> - Put the explanations in a database (flat files are probably okay), - and offer an option to display them inline with the errors. - </li> - <li> - Install and play with HTML::Validator, link to it from somewhere: - <a href="http://www.hut.fi/~samzait/HTML-Validator/">http://www.hut.fi/~samzait/HTML-Validator/</a> - <a href="http://www.cpan.org/modules/by-authors/id/S/SA/SAIT/">http://www.cpan.org/modules/by-authors/id/S/SA/SAIT/</a> - </li> - <li> - Write documentation, describing each feature and option of the - validator and answering questions like "What's the difference between - an SGML parser and Weblint?", "Which DOCTYPE should I use?", - content negotiation, ... - </li> - <li>Incorporate CSS validation directly into this service.</li> - <li> - Make e.g. <code>http://validator.w3.org/check/referer;imgonly</code> - return only an image showing the validation status of the referring - page. - </li> - <li> - Add link validation using Hugo's - <a href="http://dev.w3.org/cvsweb/validator/httpd/cgi-bin/checklink.pl">checklink - code</a> (or other code with similar functionality). - </li> - <li> - Give errors/warnings related to markup that is technically valid SGML, - but error prone, such as things found in - <a href="http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.3">"B.3 - SGML implementation notes"</a> in the - <a href="http://www.w3.org/TR/REC-html40/">HTML 4.0 spec</a>. - (these things really belong in something like - <a href="http://www.weblint.org/">weblint</a>). - </li> - <li> - Make an "elements found" section a la Webtechs, with links from each - element to the appropriate place in either the DTD tree listing - produced with dtd2html (after running dtd2html with all DTDs in the - catalog), or the HTML 3.2/4.0 specs, or htmlhelp.com stuff, ... - </li> - <li> - Add a "document meta-information" section to the report, to encourage - people to use META tags appropriately? - </li> - <li> - Add a "recommend a DTD for me" feature (check a document against all - available DTDs, report which one has the fewest errors) - </li> - <li> - Start caching validation results locally and doing an If-Modified-Since - HTTP request to only download and re-validate URLs if they actually - changed since their last validation - </li> - <li> - Site walker/validator: need to add a "registered user" feature first, - because this feature could be abused (many requests on a server in a - short period of time)? - </li> - <li> - URL-minder service: "remind me if this page or set of pages ever - ceases to validate" + <p> + As a result, you will find several lists on this page now; one for each + planned version and one for general "some time when I get a round tuit" + stuff. As releases are made, the TODO items for that release + <em>may</em> get moved to a separate "Changelog/Release Notes" page, but + if lazyness wins out they may just stay here afterall. <code>:-)</code> + </p> + <div id="validator-0_6_0"> + <h2>Validator v0.6.0</h2> + <ul> + <li class="done"> + Fix up all absolute URIs to be relative (to aid local installations). + Thanks to Alex Holst for the reminder. Thanks to Ville Skytta for the + patch. + </li> + <li class="done"> + Fix up Validators temp file handling to use secure temporary files. + Thanks to Alex Holst for the prod... <code>:-)</code> + </li> + <li class="done"> + Fix up Validator to be "-T" clean. + Thanks (again) to Alex Holst for the prod... <code>:-)</code> + </li> + <li class="done">Make it run under mod_perl.</li> + <li class="done"> + Apply Ville Skyttä's + <a href="http://cachalot.ods.org/patches/w3c-validator/">patches</a>. + </li> + <li class="done"> + Move entirely to OpenSP instead of a custom hacked version of + Liam Quinn's lq-nsgmls (OpenSP includes Liam's patches). + </li> + <li class="done"> + Add "check.cfg" configuration file to avoid path hacking (replace + mjd's regex ;D). + </li> + <li class="done">Add first cut at + <acronym title="eXtensible Markup Language">XML</acronym> output!</li> + <li class="done">Add count of errors found in page.</li> + <li>Add icon for ISO-HTML.</li> + <li>Bring back the Root Namespace in results.</li> + </ul> + </div> + <div id="validator-0_7_0"> + <h2>Validator v0.7.0 (tentative)</h2> + <div id="validator-0_7_0-core"> + <h3>Core Changes</h3> <ul> <li> - "registered user" feature is also necessary for this (to prevent - unwanted e-mail) - </li> - <li> - "registered users" could have a list of URLs they're interested in, - and whenever they return to the service they can modify this list, - and e-mail can be sent whenever any of them cease to validate - </li> - <li> - Right now someone could probably use the existing URL-minder - service instead of writing a new one (tell it to "mind" the URL - that points to the validation result for a page?) But I'm not sure - how regularly URL-minder checks for changes; it seemed to be - weekly or something, which isn't frequent enough, IMO. Doing an - If-Modified-Since GET every day doesn't cost much if pages don't - change. Some of these features should only be enabled if the page - consistently returns a Last-Modified header, maybe. + Investigate how, if, and when, to use Nick Kew's most excellent + <code>XMLMessageReporter</code> patch to OpenSP. </li> + <li>Figure out <em>some</em> way to avoid inlining so much static + <acronym title="HyperText Markup Language">HTML</acronym>!</li> + <li>Finish up the textarea for testing short + <acronym title="HyperText Markup Language">HTML</acronym> fragments.</li> + <li> + Add an <acronym title="HyperText Markup Language">HTML</acronym> + pretty-printer feature, using + <a href="http://www.w3.org/People/Raggett/tidy/">tidy</a> and/or Enscript? + </li> + <li>Add support for https:// (<acronym + title="Transport Layer Security">TLS</acronym>/<acronym + title="Secure Sockets Layer">SSL</acronym>) using Ville's patches.</li> + <li> + Pay attention to Accept-Charset (cf. <a href="http://lists.w3.org/Archives/Public/www-validator/2001JanMar/0255.html">this</a> + message from "brewhaha"). + </li> + <li> + Double check that all output is valid! In particular, use style rules + to specify heigth/width on suggested links. + </li> + <li> + Do a great big update of the various badges; the details of size, + transparency, naming, and how they are linked to (v.w3.org vs. w3.org). + </li> + <li>Make sure we output sane "text/html; charset=foo".</li> </ul> - </li> - <li> - Add an HTML pretty-printer feature, using - <a href="http://www.w3.org/People/Raggett/tidy/">tidy</a>? - </li> - <li>Provide messages in different languages?</li> - <li> - Add a graphical representation of the document's structure, - using GIFs-mixed-with-text, or an entire GIF? - </li> - <li>Add a section with PICS info?</li> - <li> - Issue PICS labels for documents that do/don't conform? - Or for editing tools that don't conform? - </li> - <li>Add support for https:// (TLS/SSL).</li> - <li> - Figure out what's going on with <a href="http://lists.w3.org/Archives/Public/www-validator/2001JanMar/0150.html">this</a>. - (Thanks to <a href="mailto:marie@voyager.atc.fhda.edu">Marie + </div> + <div id="validator-0_7_0-docs"> + <h3>Documentation Changes</h3> + <ul> + <li> + Clarify the wording regarding valid characters in + <a href="docs/errors.html#bad-char">errors.html</a> (cf. + <a href="http://lists.w3.org/Archives/Public/www-validator/2001AprJun/0049.html">this</a> + message from <a href="mailto:clemens.radl@uni-tuebingen.de">Clemens Radl</a>. + Thanks Clemens!) + </li> + <li> + Write documentation for the <acronym + title="Standard Generalized Markup Language">SGML</acronym> catalog, + point out good DOCTYPEs to use, and make it easy to find if your editor + won't insert them for you. + </li> + <li> + Add system requirements for + <abbrev title="Microsoft Windows NT">NT<abbrev>/<acronym + title="Microsoft Windows 2000">W2K</acronym>. + Bug Bjoern about his "Installing the Validator on + <abbrev title="Microsoft Windows NT">NT<abbrev>" doc. + Link to ActiveState <code>Text::Iconv</code> and friends. + </li> + <li>Add docs on editing + <acronym title="Document Type Definitions">DTDs</acronym>.</li> + <li>Document how to add new <code>DOCTYPEs</code> to the Validator.</li> + <li>Write documentation for Content Negotiation of Badges</li> + </ul> + </div> + <div id="validator-0_7_0-site"> + <h3>Website Changes</h3> + <ul> + <li> + Add catalogue of online tools and other validators. In particular, link to + the <acronym title="Web Design Group">WDG</acronym> + tools and Nick Kew's most excellent <code>*Valet</code> tools. + </li> + <li> + Link to Jukka's pages; both in general and to specific pages. + Ask him about mirroring some of the stuff on validator.w3.org. + </li> + <li>Include some Bookmarklets for the Validator</li> + </ul> + </div> + </div> + <div id="validator-1_0_0"> + <h2>Validator v1.0.0 (tentative)</h2> + <div id="validator-1_0_0-core"> + <h3>Core Changes</h3> + <ul> + <li> + Add a "fix my <acronym title="HyperText Markup Language">HTML</acronym> + for me" option using <a href="http://www.w3.org/People/Raggett/tidy/">Tidy</a>. + </li> + <li> + Finish adding support for <acronym + title="eXtensible Markup Language">XML</acronym> + validation (see also: + <a href="dev/tests/#xml">test cases</a>, or + <a href="http://www.hcrc.ed.ac.uk/~richard/xml-check.html">an + existing service</a>). + </li> + <li> + Add a section to the report on + <a href="http://www.mnot.net/cacheability/">document cacheability</a>? + (or just link to it?) + </li> + <li> + Put the explanations in a database (flat files are probably okay), + and offer an option to display them inline with the errors. + </li> + <li> + Incorporate <acronym title="Cascading Style Sheets">CSS</acronym> + validation directly into this service; either + directly or by some form of linking to the existing service on + Jigsaw. + </li> + <li> + Make e.g. <code>http://validator.w3.org/check/referer;imgonly</code> + return only an image showing the validation status of the referring + page. + </li> + <li> + Add link validation using Hugo's + <a href="http://dev.w3.org/cvsweb/validator/httpd/cgi-bin/checklink.pl">checklink + code</a> (or other code with similar functionality). + </li> + <li> + Add a "document meta-information" section to the report, to encourage + people to use <code>META</code> tags appropriately? + </li> + <li> + Figure out what's going on with <a href="http://lists.w3.org/Archives/Public/www-validator/2001JanMar/0150.html">this</a>. + (Thanks to <a href="mailto:marie@voyager.atc.fhda.edu">Marie Taylor-Harper</a> for catching this!). - </li> - <li> - Pay attention to Accept-Charset (cf. <a href="http://lists.w3.org/Archives/Public/www-validator/2001JanMar/0255.html">this</a> - message from "brewhaha"). - </li> - <li> - Clarify the wording regarding valid characters in - <a href="docs/errors.html#bad-char">errors.html</a> (cf. - <a href="http://lists.w3.org/Archives/Public/www-validator/2001AprJun/0049.html">this</a> - message from <a href="mailto:clemens.radl@uni-tuebingen.de">Clemens Radl</a>. - Thanks Clemens!) - </li> - <li> - Double check that all output is valid! In particular, use style rules - to specify heigth/width on suggested links. - </li> - <li> - Write documentation for the SGML catalog, point out good DOCTYPEs to use, - and make it easy to find if your editor won't insert them for you. - </li> - <li> - Investigate validation of <a href="http://www.openhealth.org/RDDL/">RDDL</a>. - </li> - <li> - Add catalogue of online tools and other validators. In particular, link to - the WDG tools and Nick Kew's most excellent *Valet tools. - </li> - <li>Add count of errors found in page?</li> - <li> - Fix directories differing only in name case in - sgml-lib/pro/usr/local/lib/sgml/. We have both "ietf" and "IETF" in there. - </li> - <li> - Add system requirements for NT/W2K. Bug Bjoern about his "Installing the - Validator on NT" doc. Link to ActiveState Text::Iconv and friends. - </li> - <li>Add docs on editing DTDs.</li> - <li> - Link to Jukka's pages; both in general and to specific pages. - Ask him about mirroring some of the stuff on validator.w3.org. - </li> - <li> - Do a great big update of the various badges; the details of size, - transparency, naming, and how they are linked to (v.w3.org vs. w3.org). - </li> - <li>Make sure we output sane "text/html; charset=foo".</li> - <li>Document how to add new DOCTYPEs to the Validator.</li> - <li>Write documentation for Content Negotiation of Badges</li> - <li>Include some Bookmarklets for the Validator</li> - </ol> -<!--#include virtual="/footer.html" --> + </li> + <li> + Investigate validation of <a + href="http://www.openhealth.org/RDDL/"><acronym + title="Resource Directory Description Language">RDDL</acronym></a>. + </li> + <li> + Fix directories differing only in name case in + <code>sgml-lib/pro/usr/local/lib/sgml/</code>. + We have both "ietf" and "IETF" in there. + </li> + </ul> + </div> + <div id="validator-1_0_0-docs"> + <h3>Documentation Changes</h3> + <ul> + <li> + Write documentation, describing each feature and option of the + validator and answering questions like "What's the difference between + an <acronym title="Standard Generalized Markup Language">SGML</acronym> + parser and Weblint?", "Which <code>DOCTYPE</code> should I use?", + content negotiation, ... + </li> + </ul> + </div> + <div id="validator-1_0_0-site"> + <h3>Website Changes</h3> + <ul> + <li> + Update <a href="sgml-lib.tar.gz"><code>sgml-lib.tar.gz</code></a>; + automate the updates. + </li> + </ul> + </div> + </div> + + <div id="future"> + <h2>Various Unclassified Stuff</h2> + <p> + These items are roughly in prioritized order; i.e. the items near the + top are those which I consider most important. + </p> + + <ol> + <li> + Make lists of "most frequently validated invalid pages" + and "most frequently validated (non-<acronym + title="World Wide Web Consortium">W3C</acronym>?) valid pages" + (need to start logging stuff first, including <acronym + title="Internet Protocol Addresses">IPs</acronym> to compare + uniqueness). + </li> + <li> + Install and play with <code>HTML::Validator</code>, link to it from somewhere: + <a href="http://www.hut.fi/~samzait/HTML-Validator/"><code>HTML::Validator</code> + Home Page</a> + <a href="http://www.cpan.org/modules/by-authors/id/S/SA/SAIT/">Sami Itkonen's + <acronym title="Comprehensive Perl Archive Network">CPAN</acronym> directory</a> + </li> + <li> + Give errors/warnings related to markup that is technically valid + <acronym title="Standard Generalized Markup Language">SGML</acronym>, + but error prone, such as things found in + <a href="http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.3">"B.3 + <acronym title="Standard Generalized Markup Language">SGML</acronym> + implementation notes"</a> in the + <a href="http://www.w3.org/TR/REC-html40/"><acronym + title="HyperText Markup Language">HTML</acronym> 4.0 spec</a>. + (these things really belong in something like + <a href="http://tidy.sf.net/">Tidy</a>). + </li> + <li> + Make an "elements found" section a la Webtechs, with links from each + element to the appropriate place in either the <acronym + title="Document Type Definition">DTD</acronym> tree listing + produced with dtd2html (after running dtd2html with all <acronym + title="Document Type Definitions">DTDs</acronym> in the + catalog), or the <acronym title="HyperText Markup Language">HTML</acronym> + 3.2/4.0 specs, or htmlhelp.com stuff, ... + </li> + <li> + Add a "recommend a <acronym title="Document Type Definition">DTD</acronym> + for me" feature (check a document against all + available DTDs, report which one has the fewest errors) + </li> + <li> + Start caching validation results locally and doing an + <code>If-Modified-Since</code> + <acronym title="HyperText Transfer Protocol">HTTP</acronym> + request to only download and re-validate + <acronym title="Uniform Resource Locators">URLs</acronym> + if they actually changed since their last validation + </li> + <li> + Site walker/validator: need to add a "registered user" feature first, + because this feature could be abused (many requests on a server in a + short period of time)? + </li> + <li> + <acronym title="Uniform Resource Locator">URL</acronym>-minder service: + "remind me if this page or set of pages ever ceases to validate". + <ul> + <li> + "registered user" feature is also necessary for this (to prevent + unwanted e-mail) + </li> + <li> + "registered users" could have a list of <acronym + title="Uniform Resource Locators">URLs</acronym> they're interested in, + and whenever they return to the service they can modify this list, + and e-mail can be sent whenever any of them cease to validate + </li> + <li> + Right now someone could probably use the existing <acronym + title="Uniform Resource Locator">URL</acronym>-minder + service instead of writing a new one (tell it to "mind" the + <acronym title="Uniform Resource Locator">URL</acronym> + that points to the validation result for a page?) But I'm not sure + how regularly + <acronym title="Uniform Resource Locator">URL</acronym>-minder + checks for changes; it seemed to be + weekly or something, which isn't frequent enough, <acronym + title="In My Opinion">IMO</acronym>. Doing an + <code>If-Modified-Since</code> </code>GET</code> every day doesn't + cost much if pages don't change. Some of these features should only + be enabled if the page consistently returns a <code>Last-Modified</code> + header, maybe. + </li> + </ul> + </li> + <li>Provide messages in different languages?</li> + <li> + Add a graphical representation of the document's structure, + using images mixed with text, or just an image? + </li> + <li>Add a section with + <acronym title="Platform For Internet Content Selection">PICS</acronym> + info?</li> + <li> + Issue <acronym title="Platform For Internet Content Selection">PICS</acronym> + labels for documents that do/don't conform? Or for editing tools that don't + conform? + </li> + </ol> + </div> +<!--#include virtual="footer.html" --> </body> </html> - diff --git a/htdocs/whatsnew.html b/htdocs/whatsnew.html index 2a9aa58..e4a44df 100755 --- a/htdocs/whatsnew.html +++ b/htdocs/whatsnew.html @@ -1,17 +1,67 @@ -<!--#set var="revision" value="\$Id: whatsnew.html,v 1.25 2002-02-11 22:09:09 link Exp $" ---><!--#set var="date" value="\$Date: 2002-02-11 22:09:09 $" +<!--#set var="revision" value="\$Id: whatsnew.html,v 1.26 2002-08-20 01:51:23 link Exp $" +--><!--#set var="date" value="\$Date: 2002-08-20 01:51:23 $" --><!--#set var="title" value="What's New at The W3C HTML Validation Service" ---><!--#include virtual="/header.html" --> +--><!--#set var="relroot" value="./" +--><!--#include virtual="header.html" --> - <div class="intro"> + <div id="skip" class="intro"> <p> - This page lists recent changes to <a href="/">the W3C HTML Validation + This page lists recent changes to <a href="./">the <acronym + title="World Wide Web Consortium">W3C</acronym> <acronym + title="HyperText Markup Language">HTML</acronym> Validation Service</a>. For minor changes and bug fixes that aren't listed on this page, see <a href="http://dev.w3.org/cgi-bin/cvsweb/validator/">the - CVS log</a>. + <acronym title="Concurrent Versions System">CVS</acronym> log</a>. </p> </div> <dl> + <dt><a name="2002-08-20">August 08, 2002</a>:</dt> + <dd> + <ul> + <li>Improved design of layout, including for Validation results.</li> + <li>Added "beefed up" Tip-of-the-Day.</li> + <li>Many accessibility fixes, both to the web site and the Result page.</li> + <li> + Major internal restructuring. The code has undergone significant + refactoring with many benefits. It is more readable and easier to + understand, much more robust, much improved security, more modular, + and performance should be significantly better. There is tentative + support for running under mod_perl (leading to even greater + performance enhancements) and memory consumption should be much + improved. + </li> + <li> + Many new document types are supported and support for some + existing document types has been improved. Notable changes + and additions include: + <ul> + <li>Support for <code>application/xhtml+xml</code>.</li> + <li> + Support for <acronym + title="eXtensible HyperText Markup Language">XHTML</acronym>+<acronym + title="Math Markup Language">MathML</acronym> and <a + href="http://www.w3.org/TR/2002/WD-XHTMLplusMathMLplusSVG-20020809/"><acronym + title="eXtensible HyperText Markup Language">XHTML</acronym>+<acronym + title="Math Markup Language">MathML</acronym>+<acronym + title="Scalable Vector Graphics">SVG</acronym></a>. + </li> + <li> + Support for <acronym + title="Scalable Vector Graphics">SVG</acronym> and <code>image/svg</code>. + </li> + <li> + <a href="http://www.w3.org/TR/2002/REC-xhtml1-20020801/"><acronym + title="eXtensible HyperText Markup Language">XHTML</acronym> + 1.0 Second Edition</a> and <a href="http://www.w3.org/TR/xhtml11/"><acronym + title="eXtensible HyperText Markup Language">XHTML</acronym> + 1.1</a>. + </li> + </ul> + </li> + <li>Output has been reworked to be easier to understand.</li> + <li>And a whole bunch of bugfixes... :-)</li> + </ul> + </dd> <dt><a name="2001-10-06">October 06, 2001</a>:</dt> <dd> <ul> @@ -22,16 +72,21 @@ <dt><a name="2001-09-24">September 24, 2001</a>:</dt> <dd> <ul> - <li>Added experimental support for SVG 1.0.</li> - <li>Added experimental support for spec-prod 2.0.</li> + <li>Added experimental support for <acronym + title="Scalable Vector Graphics">SVG</acronym> 1.0.</li> + <li>Added experimental support for <code>spec-prod</code> 2.0.</li> <li>...and several minor bug fixes.</li> </ul> </dd> <dt><a name="2001-09-13">September 13, 2001</a>:</dt> <dd> <ul> - <li>Added support for XHTML 1.1 and XHTML Basic 1.0.</li> - <li>Added experimental support for MathML 2.0.</li> + <li>Added support for <acronym + title="eXtensible HyperText Markup Language">XHTML</acronym> 1.1 and + <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> + Basic 1.0.</li> + <li>Added experimental support for <abbrev + title="Mathematical Markup Language">MathML</abbrev> 2.0.</li> <li>You can now tweak options from results page.</li> <li>Added option to override Character Encoding.</li> <li>Various bug fixes and minor changes.</li> @@ -42,7 +97,7 @@ <ul> <li>Various bugfixes; notably two related to the File Upload feature.</li> <li>Some changes to make local installations easier.</li> - <li>Support for more Character Encodings (e.g. ISO-8859-8-I).</li> + <li>Support for more Character Encodings (e.g. <code>ISO-8859-8-I</code>).</li> <li>Generally improved handling of Character Encodings.</li> <li>Documentation donated by Scott Bigham (Thanks Scott!).</li> </ul> @@ -50,51 +105,62 @@ <dt><a name="2000-10-18">October 18, 2000</a>:</dt> <dd> <p> - Added support for <a href="http://purl.org/NET/ISO+IEC.15445/15445.html">ISO/IEC 15445:2000</a> - (ISO-HTML). See also: <a href="http://purl.org/NET/ISO+IEC.15445/Users-Guide.html">User's Guide to - ISO-HTML</a>. + Added support for <a + href="http://purl.org/NET/ISO+IEC.15445/15445.html"><acronym + title="Internation Organization for Standardization">ISO</acronym>/<acronym + title="International Electrotechnical Commission">IEC</acronym> 15445:2000</a> + (<acronym title="Internation Organization for Standardization">ISO</acronym>-<acronym title="HyperText Markup Language">HTML</acronym>). + See also: <a href="http://purl.org/NET/ISO+IEC.15445/Users-Guide.html">User's + Guide to <acronym title="Internation Organization for Standardization">ISO</acronym>-<acronym title="HyperText Markup Language">HTML</acronym></a>. </p> </dd> <dt><a name="2000-06-30">June 30, 2000</a>:</dt> <dd> <p> - The service now checks XHTML documents for validity as well as - XML well-formedness. + The service now checks <acronym + title="eXtensible HyperText Markup Language">XHTML</acronym> documents + for validity as well as <acronym + title="eXtensible Markup Language">XML</acronym> well-formedness. </p> </dd> <dt><a name="2000-04-28">April 28, 2000</a>:</dt> <dd> <p> Added the <a href="file-upload.html">file upload</a> feature. - (Thanks to Terje Bless for the patches!) </p> <p> Created the <a href="http://lists.w3.org/Archives/Public/www-validator-cvs/">www-validator-cvs mailing list</a>. </p> <p> - Updated the <a href="/">home page</a>, moved some things to + Updated the <a href="./">home page</a>, moved some things to <a href="about.html">another page</a>. </p> </dd> <dt><a name="2000-01-26">January 26, 2000</a>:</dt> <dd> <p> - Updated <a href="sgml-lib/">the DTDs</a> and added + Updated <a href="sgml-lib/">the <acronym + title="Document Type Definitions">DTDs</acronym></a> and added <a href="images/">icons</a> for - <a href="http://www.w3.org/TR/2000/REC-xhtml1-20000126/">XHTML 1.0</a>, - <a href="http://www.w3.org/TR/1999/REC-html401-19991224/">HTML 4.01</a>. + <a href="http://www.w3.org/TR/2000/REC-xhtml1-20000126/"><acronym title="eXtensible HyperText Markup Language">XHTML</acronym> 1.0</a>, + <a href="http://www.w3.org/TR/1999/REC-html401-19991224/"><acronym + title="HyperText Markup Language">HTML</acronym> 4.01</a>. </p> </dd> <dt><a name="1999.08.24">August 24, 1999</a>:</dt> <dd> <p> - Added <a href="sgml-lib/PR-html40-19990824/">the DTDs</a> for - <a href="http://www.w3.org/TR/1999/PR-html40-19990824/">HTML 4.01</a>. + Added <a href="sgml-lib/PR-html40-19990824/">the <acronym + title="Document Type Definitions">DTDs</acronym></a> for + <a href="http://www.w3.org/TR/1999/PR-html40-19990824/"><acronym + title="HyperText Markup Language">HTML</acronym> 4.01</a>. </p> <p> - Updated <a href="sgml-lib/PR-xhtml1-19990824/">the DTDs</a> for - <a href="http://www.w3.org/TR/1999/PR-xhtml1-19990824/">XHTML 1.0</a>. + Updated <a href="sgml-lib/PR-xhtml1-19990824/">the <acronym + title="Document Type Definitions">DTDs</acronym></a> for + <a href="http://www.w3.org/TR/1999/PR-xhtml1-19990824/"><acronym + title="eXtensible HyperText Markup Language">XHTML</acronym> 1.0</a>. </p> </dd> <dt><a name="1999.04.08">April 8, 1999</a>:</dt> @@ -114,15 +180,18 @@ <dt><a name="1999.03.04">March 4, 1999</a>:</dt> <dd> <p> - Added support for <a href="http://www.w3.org/MarkUp/#future">XHTML</a>, - using the DTDs from <a href="http://www.w3.org/TR/1999/WD-html-in-xml-19990304/">the + Added support for <a href="http://www.w3.org/MarkUp/#future"><acronym + title="eXtensible HyperText Markup Language">XHTML</acronym></a>, + using the <acronym title="Document Type Definitions">DTDs</acronym> + from <a href="http://www.w3.org/TR/1999/WD-html-in-xml-19990304/">the 19990304 working draft</a>. (see <a href="http://dev.w3.org/cgi-bin/cvsweb/validator/httpd/cgi-bin/check.diff?r1=text&tr1=1.13&r2=text&tr2=1.16&f=h">the changes</a>) </p> </dd> <dt><a name="1999.02.25">February 25, 1999</a>:</dt> <dd> <p> - Added support for ISO-2022-JP and Shift_JIS character encodings. + Added support for <code>ISO-2022-JP</code> and <code>Shift_JIS</code> + character encodings. Thanks to <a href="http://www.w3.org/People/W3Cpeople.html#Asada">Takuya Asada</a>, <a href="http://www.w3.org/People/W3Cpeople.html#Ishikawa">Masayasu Ishikawa</a>, and <a href="http://www.w3.org/People/D%C3%BCrst/">Martin @@ -130,7 +199,8 @@ </p> <p> Updated <a href="sgml-lib/REC-html40-971218/HTML4.decl">the - SGML declaration</a> according to the <a href="http://www.w3.org/MarkUp/html40-updates/REC-html40-19980424-errata.html">HTML + SGML declaration</a> according to the <a href="http://www.w3.org/MarkUp/html40-updates/REC-html40-19980424-errata.html"><acronym + title="HyperText Markup Language">HTML</acronym> 4.0 spec errata</a>. (see <a href="http://dev.w3.org/cgi-bin/cvsweb/validator/htdocs/sgml-lib/REC-html40-971218/HTML4.decl?r1=1.1&r2=1.2">the changes</a>). </p> @@ -138,8 +208,9 @@ <dt><a name="1998.08.26">August 26, 1998</a>:</dt> <dd> <p> - Put a <a href="/sgml-lib.tar.gz">tarred and gzipped version</a> of - <a href="/sgml-lib/">the SGML library files</a> (DTDs etc.) on the + Put a <a href="sgml-lib.tar.gz">tarred and gzipped version</a> of + <a href="sgml-lib/">the SGML library files</a> (<acronym + title="Document Type Definitions">DTDs</acronym> etc.) on the Web. </p> </dd> @@ -147,10 +218,10 @@ <dd> <p>Posted some new documents on the Web:</p> <ul> - <li><a href="/source/">information on the source code</a></li> - <li><a href="/todo.html">the to-do list for the service</a></li> + <li><a href="source/">information on the source code</a></li> + <li><a href="todo.html">the to-do list for the service</a></li> <li> - <a href="/feedback.html">a page explaining how to give feedback</a> + <a href="feedback.html">a page explaining how to give feedback</a> (including information on the new <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator mailing list</a>) </li> @@ -159,8 +230,10 @@ <dt><a name="1998.07.24">July 24, 1998</a>:</dt> <dd> <p> - Made the <a href="/source/">source code</a> available via - <a href="http://dev.w3.org/cgi-bin/cvsweb">W3C's public CVS tree</a>. + Made the <a href="source/">source code</a> available via + <a href="http://dev.w3.org/cgi-bin/cvsweb"><acronym + title="World Wide Web Consortium">W3C</acronym>'s public <acronym + title="Concurrent Versions System">CVS</acronym> tree</a>. </p> <p> Upgraded the HTTP server to <a href="http://www.apache.org/">Apache @@ -186,11 +259,13 @@ <dt><a name="1997.12.18">December 18, 1997</a>:</dt> <dd> <p> - Updated HTML 4.0 materials to match the - <a href="http://www.w3.org/TR/REC-html40/">HTML 4.0 Recommendation</a>. + Updated <acronym title="HyperText Markup Language">HTML</acronym> 4.0 + materials to match the + <a href="http://www.w3.org/TR/REC-html40/"><acronym + title="HyperText Markup Language">HTML</acronym> 4.0 Recommendation</a>. </p> </dd> </dl> -<!--#include virtual="/footer.html" --> +<!--#include virtual="footer.html" --> </body> </html> diff --git a/htdocs/xml-results.css b/htdocs/xml-results.css new file mode 100644 index 0000000..fd3902a --- /dev/null +++ b/htdocs/xml-results.css @@ -0,0 +1,47 @@ +/* + XML Results Style Sheet for the W3C HTML Validation Service. + + Copyright 2002 Terje Bless <link@pobox.com>. All Rights Reserved. + See http://www.w3.org/Consortium/Legal/ipr-notice.html#Copyright + + $Id: xml-results.css,v 1.2 2002-08-20 01:51:23 link Exp $ +*/ + +results, meta, uri, modified, server, size, encoding, doctype, warnings, messages {display: block} +strong, a, line, column, offset, msg {display: inline} + +meta { + margin-left: 5em; + margin-bottom: 2em; + border-bottom: 1px solid black; + font-weight: bolder; +} + +uri {text-before: 'URL: '} +modified {text-before: 'Modified: '} +server {text-before: 'Server: '} +size {text-before: 'Size: '} +encoding {text-before: 'Encoding: '} +doctype {text-before: 'Doctype: '} + +warnings { + border-top: 1px solid red; + border-bottom: 1px solid red; + background: grey; + margin: 3em; +} + +warning { + background: red; + display: list-item; +} + +messages {margin: 2em} +error {display: list-item} + +line {padding-right: 1ex} +column {padding-right: 1ex} +msg { + padding: 1ex; + color: red; +} diff --git a/httpd/cgi-bin/check b/httpd/cgi-bin/check index 5c847a2..73546ad 100755 --- a/httpd/cgi-bin/check +++ b/httpd/cgi-bin/check @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl -T # # W3C HTML Validation Service # A CGI script to retrieve and validate an HTML file @@ -9,36 +9,56 @@ # This source code is available under the license at: # http://www.w3.org/Consortium/Legal/copyright-software # -# $Id: check,v 1.202 2002-06-22 16:35:58 link Exp $ +# $Id: check,v 1.203 2002-08-20 01:51:30 link Exp $ # -# We need Perl 5.004. -require 5.004; +# Disable buffering on STDOUT! +$| = 1; # -# Load modules +# We need Perl 5.005_03. (no access to 5.004 testing box any more) +require 5.005_03; + +############################################################################### +#### Load modules. ############################################################ +############################################################################### + +# +# Pragmas. use strict; -use LWP::UserAgent; -use URI; -use URI::Escape; -use CGI::Carp; -use CGI qw(:cgi -newstyle_urls -private_tempfiles); -use Text::Wrap; -use Text::Iconv; # on debian: apt-get install libtext-iconv-perl -use HTML::Parser 3.25; # Need 3.25 for $p->ignore_elements. - # DWC tweaks this in his local set-up. +use warnings; +# +# Modules. +# +# Version numbers given where we absolutely need a minimum version of a given +# module (gives nicer error messages). By default, add an empty import list +# when loading modules to prevent non-OO or poorly written modules from +# polluting our namespace. +# +use CGI 2.81 qw(-newstyle_urls -private_tempfiles); # 2.81 for XHTML +use CGI::Carp qw(carp croak); +use File::Spec qw(); +use HTML::Parser 3.25 qw(); # Need 3.25 for $p->ignore_elements. +use HTTP::Request qw(); +use IO::File qw(); +use IPC::Open3 qw(open3); +use LWP::UserAgent 1.90 qw(); # Need 1.90 for protocols_(allowed|forbidden) +use Set::IntSpan qw(); +use Text::Iconv qw(); # Debian: apt-get install libtext-iconv-perl +use Text::Wrap qw(wrap); +use URI qw(); +use URI::Escape qw(uri_escape); -############################################################################# -# Constant definitions -############################################################################# + +############################################################################### +#### Constant definitions. #################################################### +############################################################################### # # Define global constants use constant TRUE => 1; use constant FALSE => 0; -use constant UNDEF => undef; -use constant DEBUG => 0; # # Tentative Validation Severeties. @@ -52,246 +72,289 @@ use constant T_CHARSET_KLUDGE => 128; # 1000 0000 # -# Define global variables -use vars qw($VERSION $DATE $MAINTAINER $NOTICE); # Strings. -use vars qw($frag $pub_ids $element_uri $file_type $doctypes $charsets); - # Cfg hashes. -use vars qw($DEBUG); # Switch to turn debugging on and off. -use vars qw($File); # Global var to hold all metadata for this validation. +# Define global variables. +use vars qw($DEBUG $CFG $VERSION); -$DEBUG += 1 unless $ENV{SERVER_PORT} == 80; - -# -# Paths and file locations # -# CONFIG: Change this to the directory that contains "htdocs/". -my $base_path = '/usr/local/validator/'; +# Things inside BEGIN don't happen on every request in persistent +# environments, such as mod_perl. So let's do globals, eg. read config here. +BEGIN { -my $html_path = $base_path . 'htdocs/'; -my $elem_db = $html_path . 'config/eref.cfg'; -my $fpis_db = $html_path . 'config/fpis.cfg'; -my $frag_db = $html_path . 'config/frag.cfg'; -my $type_db = $html_path . 'config/type.cfg'; -my $dtds_db = $html_path . 'config/doctypes.cfg'; -my $chst_db = $html_path . 'config/charset.cfg'; -my $tips_db = $html_path . 'config/tips.html'; -my $sgmlstuff = $html_path . 'sgml-lib'; -my $temp = "/tmp/validate.$$"; # @@ Use POSIX/IO::File tmpfiles instead! - -# -# Executables and binaries -my $sp = '/usr/local/bin/lq-nsgmls'; -# DWC tweak: my $sp = '/usr/bin/nsgmls'; -my $osp = '/usr/local/bin/onsgmls'; + # + # Read Config Files. + $CFG = &read_cfg($ENV{W3C_VALIDATOR_CFG} || '/etc/w3c/validator.conf'); -# -# URIs and fragments -my $abs_svc_uri = 'http://validator.w3.org/'; -my $uri_def_uri = 'http://www.w3.org/Addressing/#terms'; -my $faqloc = '/docs/'; -my $faqerrloc = $faqloc . 'errors.html'; -my $element_ref = 'http://www.htmlhelp.com/reference/html40/'; + # + # Set debug flag. + $DEBUG = TRUE if $ENV{W3C_VALIDATOR_DEBUG} || $CFG->{DEBUG}; -# -# Strings -$VERSION = q$Revision: 1.202 $; -$VERSION =~ s/Revision: ([\d\.]+) /$1/; -$DATE = q$Date: 2002-06-22 16:35:58 $; -$MAINTAINER = 'gerald@w3.org'; -$NOTICE = ''; # "<p><strong>Note: This service will be ...</strong>"; + # + # Strings + $VERSION = q$Revision: 1.203 $; + $VERSION =~ s/Revision: ([\d\.]+) /$1/; -# -# DOCTYPEs -my $html32_doctype = q(<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">); -my $html40s_doctype = q(<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">); -my $html40t_doctype = q(<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">); -my $html40f_doctype = q(<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd">); -my $xhtmlt_doctype = q(<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"); -# -# Read configuration files. -$frag = &read_cfg($frag_db); # FPIs -> plain text version string -$pub_ids = &read_cfg($fpis_db); # Errors -> fragment identifier -$element_uri = &read_cfg($elem_db); # Element -> URI fragment -$file_type = &read_cfg($type_db); # Content -> File -type -$doctypes = &read_cfg($dtds_db); # Name -> doctype -$charsets = &read_cfg($chst_db); # charset -> iconv parameter + # + # Read TAB-delimited configuration files. Returns a hash reference. + sub read_cfg { + my $file = shift; + my %cfg; + + my $fh = new IO::File $file + or die "open($file) returned: $!\n"; + + while (<$fh>) { + next if /^\s*$/; + next if /^\s*\#/; + chomp; + my($k, $v) = split /\t+/, $_, 2; + $v = '' unless defined $v; + + if ($v =~ s(^file://){}) {$cfg{$k} = &read_cfg($v) } + elsif ($v =~ /,/) {$cfg{$k} = [split /,/, $v]} + else {$cfg{$k} = $v } + } + undef $fh; + return \%cfg; + } -# -# Set up signal handlers. -$SIG{TERM} = \&erase_stuff; -$SIG{KILL} = \&erase_stuff; -$SIG{PIPE} = 'IGNORE'; +} # end of BEGIN block. # -# delete() the, possibly tainted, $PATH. +# Get rid of (possibly insecure) $PATH. delete $ENV{PATH}; -############################################################################# -# Process CGI variables -############################################################################# +############################################################################### +#### Process CGI variables and initialize. #################################### +############################################################################### # # Create a new CGI object. my $q = new CGI; # -# Backwards compatibility; see -# http://lists.w3.org/Archives/Public/www-validator/1999JulSep/0197 -# http://lists.w3.org/Archives/Public/www-validator/1999JulSep/0212 -if (scalar $q->param) { - foreach my $param ($q->param) { - next if $param eq 'uploaded_file'; - $q->param($param, TRUE) unless $q->param($param); - } -} +# The data structure that will hold all session data. +my $File; # -# Futz the URI so "/referer" works. -if ($q->path_info eq '/referer') { - $q->param('uri', $q->referer); -} +# Pseudo-SSI include header and footer for output. +$File->{'Header'} = &prepSSI({ + File => $CFG->{'Header'}, + Title => 'Validation Results', + Revision => $VERSION, + }); +$File->{'Footer'} = &prepSSI({ + File => $CFG->{'Footer'}, + Date => q$Date: 2002-08-20 01:51:30 $, + }); # -# USe HTTP Referer if uri=referer. -if ($q->param('uri') =~ m(referer)i) { - $q->param('uri', $q->referer); -} +# SSI Footer for static pages does not include closing tags for body & html. +$File->{'Footer'} .= qq( </body>\n</html>\n); # -# Use "url" unless a "uri" was also given. -if ($q->param('url') and not $q->param('uri')) { - $q->param('uri', $q->param('url')); -} +# Prepare standard HTML preamble for output. +$File->{'Results'} = "Content-Language: en\n"; +$File->{'Results'} .= "Content-Type: text/html; charset=utf-8\n\n"; +$File->{'Results'} .= $File->{'Header'}; -# -# Supercede URI with an uploaded file. -if ($q->param('uploaded_file')) { - &redirect_to_home_page unless length($q->param('uploaded_file')); # Must have filename. - $q->param('uri', 'upload://' . $q->param('uploaded_file')); -} + +############################################## +# Populate $File->{Env} -- Session Metadata. # +############################################## # -# Supercede URI with an uploaded fragment. -if ($q->param('fragment')) {$q->param('uri', 'upload://Form Submission')}; +# The URL to this CGI Script. +$File->{Env}->{'Self URI'} = $q->url(-query => 0); # -# Send them to the homepage unless we can extract a URI from either of the -# acceptable sources: uri, url or /referer. -&redirect_to_home_page unless length($q->param('uri')) > 5; +# Initialize parameters we'll need (and override) later. +$File->{Charset}->{Use} = ''; # The charset used for validation. +$File->{Charset}->{Auto} = ''; # Autodetected using XML rules. +$File->{Charset}->{HTTP} = ''; # From HTTP's "charset" parameter. +$File->{Charset}->{META} = ''; # From HTML's <meta http-equiv>. +$File->{Charset}->{XML} = ''; # From the XML Declaration. # -# Munge the URI to include commonly omitted prefix. -$q->param('uri', 'http://' . $q->param('uri')) if $q->param('uri') =~ m(^www)i; +# Array (ref) used to store character offsets for the XML report. +$File->{Offsets}->[0] = [0, 0]; # The first item isn't used... -############################################################################# -# Output validation results -############################################################################# +######################################### +# Populate $File->{Opt} -- CGI Options. # +######################################### # -# A string containing the HTML header for validation results. -# We save it in a string instead of printing it in case we need to abort before -# we have any meaningfull results to report. @@ May not be necessary! -$File->{Results} = <<"EOF"; -Content-Type: text/html; charset=utf-8 +# Preprocess the CGI parameters. +$q = &prepCGI($File, $q); -$html40t_doctype -<html> - <head> - <meta http-equiv='Content-Type' content='text/html;charset=utf-8'> - <title>W3C HTML Validation Service Results</title> - <link rev="made" href="mailto:$MAINTAINER"> - <style type="text/css" media="screen">\@import "/results.css";</style> - </head> +# +# Set session switches. +$File->{Opt}->{'Outline'} = $q->param('outline') ? TRUE : FALSE; +$File->{Opt}->{'Show Source'} = $q->param('ss') ? TRUE : FALSE; +$File->{Opt}->{'Show Parsetree'} = $q->param('sp') ? TRUE : FALSE; +$File->{Opt}->{'No Attributes'} = $q->param('noatt') ? TRUE : FALSE; +$File->{Opt}->{'Show ESIS'} = $q->param('esis') ? TRUE : FALSE; +$File->{Opt}->{'Show Errors'} = $q->param('errors') ? TRUE : FALSE; +$File->{Opt}->{'Verbose'} = $q->param('verbose') ? TRUE : FALSE; +$File->{Opt}->{'Debug'} = $q->param('debug') ? TRUE : FALSE; +$File->{Opt}->{'Charset'} = $q->param('charset') ? $q->param('charset') : ''; +$File->{Opt}->{'DOCTYPE'} = $q->param('doctype') ? $q->param('doctype') : ''; +$File->{Opt}->{'URI'} = $q->param('uri') ? $q->param('uri') : ''; +$File->{Opt}->{'Output'} = $q->param('output') ? $q->param('output') : 'html'; - <body> - <div> - <p class="navbar"> - <span class="hideme"><a href="#title" title="Skip past navigation to main part of page">Skip Navigation</a> |</span> - <a href="/" title="Go to the Home Page for tThe W3C HTMl Validation Service">[ Home Page ]</a> <span class="hideme">|</span> - <a href="/docs/" title="Documentation for this Service">Documentation</a> <span class="hideme">|</span> - <a href="/source/" title="Information on Source Availability">Source Code</a> <span class="hideme">|</span> - <a href="/whatsnew.html" title="The changes made to this service recently">What's New</a> <span class="hideme">|</span> - <a href="/feedback.html" title="How to provide feedback on this service">Feedback</a> <span class="hideme">|</span> - <a href="/about.html" title="Information About this Service">About...</a> <span class="hideme">|</span> - </p> - <p class="navbar"> - <a href="http://jigsaw.w3.org/css-validator/" class="offsite" title="The W3C CSS Validator">CSS Validator</a> <span class="hideme">|</span> - <a href="/checklink" class="offsite" title="The W3C Link Checker">Link Checker</a> <span class="hideme">|</span> - <a href="http://www.w3.org/People/Raggett/tidy/" class="offsite" title="The HTML Tidy Home Page">HTML Tidy</a> <span class="hideme">|</span> - </p> - <p class="navbar"> - <a href="http://www.w3.org/MarkUp/" class="offsite" title="The W3C HTML Home Page">HTML Home</a> <span class="hideme">|</span> - <a href="http://www.w3.org/TR/xhtml1/" class="offsite" title="The XHTML 1.0 Reccommendation">XHTML 1.0</a> <span class="hideme">|</span> - <a href="http://www.w3.org/TR/html401/" class="offsite" title="The HTML 4.01 Reccommendation">HTML 4.01</a> <span class="hideme">|</span> - </p> - <h1 id="title"><a href="http://www.w3.org/"><img height="48" alt="W3C" id="logo" - src="http://www.w3.org/Icons/WWW/w3c_home" /></a> HTML Validation Service Results</h1> - </div> - $NOTICE -EOF +$DEBUG = $File->{Opt}->{Debug}; +&abort_if_error_flagged($File); # -# Punt if we don't recognize this URI scheme. -# @@ LWP does a whole bunch more: transparently! -unless ($q->param('uri') =~ m(^(http|upload)://)) { - print $File->{Results}; - print <<"EOF"; - <p> - Sorry, this type of <a href="http://www.w3.org/Addressing/#terms">URI</a> - is not supported by this service. - </p> - <p> - URIs should be in the form: - </p> - <blockquote> - <code>$abs_svc_uri</code> - </blockquote> - <p> - (There are other types of URIs, too, but only <code>http://</code> URIs - are currently supported by this service.) - </p> -EOF - &clean_up_and_exit; +# Get the file and metadata. +if ($q->param('uploaded_file')) { + $File = &handle_file($q, $File); +} elsif ($q->param('fragment')) { + $File = &handle_frag($q, $File); +} elsif ($q->param('uri')) { + $File = &handle_uri($q, $File); } # -# Get the file and metadata. -if ($q->param('uploaded_file')) {$File = &handle_file($q, $File)} -elsif ($q->param('fragment')) {$File = &handle_frag($q, $File)} -elsif ($q->param('uri')) {$File = &handle_uri( $q, $File)}; +# Get rid of the CGI object. +undef $q; + +# +# We don't need STDIN any more, so get rid of it to avoid getting clobbered +# by Apache::Registry's idiotic interference under mod_perl. +untie *STDIN; # # Abort if an error was flagged during initialization. -if ($File->{'Error Flagged'}) { - print $File->{'Results'}; - print $File->{'Error Message'}; -# print $File->{'Footer'}; - undef $File; - exit; +&abort_if_error_flagged($File); + + +############################################################################### +#### Output validation results. ############################################### +############################################################################### + + + +# if (<http charset given>) { +# # Use it, transcode, validate... +# } elsif (<text/...+xml>) { # The one special case. +# # Act as if $http_charset was 'us-ascii'. +# } else { +# if (<XML Rec Autodetect>) { +# # Trust it, transcode, validate... +# } else { # Autodetect failed... Assume ASCII/UTF-8 compatible. +# if (<XML encoding given>) { +# # Use it, transcode, validate... +# } elsif (<meta charset given...>) { +# # Use it, transcode, validate... +# } else { +# # No charset in HTTP, XML, or META. +# # Refuse to validate! +# } +# } +# } + + +# +# Find Encoding in use. +# Only meaningfull if file contains a BOM, or for well-formed XML! +$File->{Charset}->{Auto} = &find_encoding($File); + +# +# Abort if an error was flagged by charset autodetect. +&abort_if_error_flagged($File); + +# +# Decide on a charset to use. +if ($File->{Charset}->{HTTP}) { + $File->{Charset}->{Use} = $File->{Charset}->{HTTP}; # HTTP, if given, is authorative. +} elsif ($File->{Type} =~ m(text/\w+\+xml)) { + $File->{Charset}->{Use} = 'us-ascii'; # Act as if $http_charset was 'us-ascii'. (MIME rules) + &add_warning($File, <<" .EOF."); + <em>Note:</em> + The HTTP Content-Type field did not contain a "charset" attribute, + but the Content-Type was one of the XML text/* sub-types. The relevant + standards specify a strong default of "us-ascii" for such documents so + we will use this value regardless of any encoding you may have indicated + elsewhere.If you would like to use a different encoding, you should + arrange to have your server send this new encoding information. + .EOF. +} else { + if ($File->{Charset}->{Auto}) { + $File->{Charset}->{Use} = $File->{Charset}->{Auto}; # Trust it, transcode, validate... + &add_warning($File, <<" .EOF."); + <strong>No Character Encoding detected!</strong> + To ensure correct validation, processing, and display, + it is important that the character encoding is properly + labeled. + <a href="http://www.w3.org/International/O-charset.html">More + information...</a> + .EOF. + $File->{Tentative} |= T_CHARSET_KLUDGE; # Would be T_WARN, but the complaints... + } else { # Autodetect failed... Assume ASCII/UTF-8 compatible. + + # + # Try to extract DOCTYPE, xmlns. and charset. + $File = &preparse($File); + + if ($File->{Charset}->{XML}) { + $File->{Charset}->{Use} = $File->{Charset}->{XML}; + } elsif ($File->{Charset}->{META}) { + $File->{Charset}->{Use} = $File->{Charset}->{META}; + } else { + $File->{'Error Flagged'} = TRUE; + $File->{'Error Message'} = <<".EOF."; + <p> + I was not able to extract a character encoding labelling from either of + the valid sources for such information. Without encoding information it + is impossible to validate the document. The sources I tried returned: + </p> + <dl> + <dt>The "charset" parameter on the HTTP Content-Type field:</dt> + <dd>"$File->{Charset}->{HTTP}"</dd> + <dt>The "encoding" attribute on the XML Declaration:</dt> + <dd>"$File->{Charset}->{XML}"</dd> + <dt>Any "charset" value given in a HTML "META" element:</dt> + <dd>"$File->{Charset}->{META}"</dd> + <dt>And the charset autodetect from the XML Reccomendation:</dt> + <dd>"$File->{Charset}->{AUTO}"</dd> + </dl> + <p> + Since none of these sources yielded any usable information, I will not be + able to validate this document. Sorry. + </p> + <p>Please make sure you specify the character encoding in use.</p> + <p> + If you <em>did</em> specify a character encoding and we failed to detect + it, please report this as outlined on our + <a href="feedback.html">Feedback Page</a>. Please make sure you include + the URL for a document that demonstrates the problem, and an explanation + of how you specified the character encoding that we failed to detect. + </p> +.EOF. + } + } } +# +# Abort if an error was flagged while finding the encoding. +&abort_if_error_flagged($File); # -# Abort if there was no document type mapping for this Content-Type, in which -# case the document type will be equal to the content type (contains a "/"). -if ($File->{'Type'} =~ m(/) and not $q->param('uploaded_file')) { - print $File->{Results}; - print <<"EOF"; - <p class="error"> - Sorry, I am unable to validate this document because its returned - content-type was <code>$File->{Type}</code>, which is not - currently supported by this service. - </p> -EOF - &clean_up_and_exit; -} +# Check the detected Encoding and transliterate. +$File = &validate_encoding($File); + +# +# Abort if an error was flagged during Encoding Validation. +&abort_if_error_flagged($File); + + # # Overall parsing algorithm for documents returned as text/html: @@ -306,23 +369,13 @@ EOF # # -# Detect and remove a UTF-8 BOM. -$File->{Content}[0] =~ s/^\xEF\xBB\xBF// - and &add_warning(<<".EOF."); - <em>Note:</em> UTF-8 'BOM' detected and removed. (This message is - informational. See the - <a href="$faqerrloc#utf8-bom">explanation</a> for details.) -.EOF. - - -# # Override DOCTYPE if user asked for it. -if (defined $q->param('doctype') - and not $q->param('doctype') =~ /(Inline|detect)/i) { +if ($File->{Opt}->{DOCTYPE} + and not $File->{Opt}->{DOCTYPE} =~ /(Inline|detect)/i) { $File->{Content} = &supress_doctype($File->{Content}); - unshift @{$File->{Content}}, $doctypes->{$q->param('doctype')}; - my $dtd = ent($q->param('doctype')); - &add_warning(<<".EOF."); + unshift @{$File->{Content}}, $CFG->{'Doctypes'}->{$File->{Opt}->{DOCTYPE}}; + my $dtd = ent($File->{Opt}->{DOCTYPE}); + &add_warning($File, <<".EOF."); <strong>DOCTYPE Override in effect!</strong> Any DOCTYPE Declaration in the document has been supressed and the DOCTYPE for «<code>$dtd</code>» inserted instead. The document will not be Valid until you alter the source @@ -340,272 +393,189 @@ $File = &preparse($File); # Set document type to XHTML if the DOCTYPE was for XHTML. # Set document type to MathML if the DOCTYPE was for MathML. # This happens when the file is served as text/html -$File->{Type} = 'xhtml' if $File->{DOCTYPE} =~ /xhtml/i; -$File->{Type} = 'mathml' if $File->{DOCTYPE} =~ /mathml/i; +$File->{Type} = 'xhtml+xml' if $File->{DOCTYPE} =~ /xhtml/i; +$File->{Type} = 'mathml+xml' if $File->{DOCTYPE} =~ /mathml/i; # -# Figure out which charset was detected. -if ($File->{HTTP_Charset}) {$File->{Charset} = $File->{HTTP_Charset}} -elsif ($File->{XML_Charset}) {$File->{Charset} = $File->{XML_Charset}} -elsif ($File->{META_Charset}) {$File->{Charset} = $File->{META_Charset}} -else { $File->{Charset} = 'unknown'} +# Sanity check Chrset information and add any warnings necessary. +$File = &validate_charset($File); -# If we have a charset field in the request, we use it -if ($q->param('charset') and $q->param('charset') ne 'unknown' - and $q->param('charset') ne '(detect automatically)') { - $q->param('charset') =~ /^([^ ]*)/; - $File->{Use_Charset} = lc $1; -} -else { $File->{Use_Charset} = $File->{Charset}; } # -# Setup SP environment for the charset. -if ($File->{Use_Charset} ne 'unknown') { - $ENV{SP_CHARSET_FIXED} = 'YES'; - $ENV{SP_ENCODING} = 'utf-8'; -} +# Print different things if we got redirected or had a file upload. +if ($File->{'Is Upload'}) { + &add_table($File, "File", $File->{URI}); +} else { + my $size = (length($File->{Opt}->{URI}) || 38) + 2; + $size = 70 if $size > 70; -# -# Print header and jump links. -print $File->{Results}, &build_jump_links; + if (URI::eq("$File->{Opt}->{URI}", $File->{URI})) { + &add_table($File, qq(<label title="Address of Page to Validate (accesskey: 1)" for="uri">Address</label>), + [1, 2, '<input accesskey="1" type="text" id="uri" name="uri" size="' . $size + . '" value="' . $File->{Opt}->{URI} . '" />']); + } else { + &add_table($File, qq(<label title="Address of Page to Validate (accesskey: 1)" for="uri">URI</label>), + '<input accesskey="1" type="text" id="uri" name="uri" size="' . $size + . '" value="' . $File->{URI} . '" />'); + &add_warning($File, '<em>Note:</em> The URI you gave me, «<code>' . + $File->{Opt}->{URI} . '</code>», ' . + 'returned a redirect to ' . + '«<code>' . $File->{URI} . '</code>».'); + } +} -# -# Print different things if we got redirected or had a file upload. -if (URI::eq("$File->{URI}", $q->param('uri'))) { # @@ Need to stringify here? - &add_table(qq(<label title="Address of Page to Validate" for="uri">Address</label>), - '<input type="text" id="uri" name="uri" size="' - . (length($File->{URI}) + 2) - . '" value="' . $File->{URI} . '" />' - . ' [<a title="Go to the entered URI" href="' . $File->{URI} . '">Go to...</a>]'); -} elsif ($q->param('uploaded_file')) { - &add_table("File", $File->{URI}); -} else { - &add_table(qq(<label title="Address of Page to Validate" for="uri"><a href="$uri_def_uri">URI</a></label>), - '<input type="text" id="uri" name="uri" size="' - . (length($File->{URI}) + 2) - . '" value="' . $File->{URI} . '" />' - . ' [<a href="' . $File->{URI} . '">Go to URI</a>]'); - &add_warning('<em>Note:</em> The URI you gave me, «<code>' . - $q->param('uri') . '</code>», ' . - 'returned a redirect to ' . - '«<code>' . $File->{URI} . '</code>».'); +if ($File->{Opt}->{Verbose}) { + &add_table($File, "Modified", $File->{Modified}) if $File->{Modified}; + &add_table($File, "Server", $File->{Server}) if $File->{Server}; + &add_table($File, "Size", $File->{Size}) if $File->{Size}; } -&add_table("Last Modified", $File->{Modified}) if $File->{Modified}; -&add_table("Server", $File->{Server}) if $File->{Server}; -&add_table("Content Length", $File->{Size}) if $File->{Size}; -&add_table("Detected Character Encoding", "<code>$File->{Charset}</code>"); -&add_table("Used Character Encoding", "<code>$File->{Use_Charset}</code>") - unless $File->{Charset} eq $File->{Use_Charset}; -unless ($q->param('uploaded_file')) { - &add_table(qq(<label title="Select Character Encoding" for="charset">Select Character Encoding</label>), - $q->popup_menu(-name => 'charset', -id => 'charset', - -values => [ - '(detect automatically)', - 'utf-8 (Unicode, worldwide)', - 'iso-8859-1 (Western Europe)', - 'iso-8859-2 (Central Europe)', - 'iso-8859-3 (Maltese)', - 'iso-8859-4 (Baltic Rim)', - 'iso-8859-5 (Cyrillic)', - 'iso-8859-6-i (Arabic)', - 'iso-8859-7 (Greek)', - 'iso-8859-8-i (Hebrew)', - 'iso-8859-9 (Turkish)', - 'iso-8859-10 (Latin 6)', - 'iso-8859-13 (Latin 7)', - 'iso-8859-14 (Celtic)', - 'iso-8859-15 (Latin 9)', - 'us-ascii (basic English)', - 'euc-jp (Japanese, Unix)', - 'shift_jis (Japanese, Win/Mac)', - 'iso-2022-jp (Japanese, email)', - 'euc-kr (Korean)', - 'gb2312 (Chinese, simplified)', - 'big5 (Chinese, traditional)', - 'tis-620 (Thai)', - 'koi8-r (Russian)', - 'koi8-u (Ukrainian)', - 'macintosh (MacRoman)', - 'windows-1250 (Central Europe)', - 'windows-1251 (Cyrillic)', - 'windows-1252 (Western Europe)', - 'windows-1253 (Greek)', - 'windows-1254 (Turkish)', - 'windows-1255 (Hebrew)', - 'windows-1256 (Arabic)', - 'windows-1257 (Baltic Rim)', - ], +if ($File->{'Is Upload'}) { + &add_table($File, 'Encoding', $File->{Charset}->{Use}); +} else { + &add_table($File, + qq(<label accesskey="2" title="Character Encoding (accesskey: 2)" for="charset">Encoding</label>), + $File->{Charset}->{Use}, + &CGI::popup_menu( + -name => 'charset', + -id => 'charset', + -values => [ + '(detect automatically)', + 'utf-8 (Unicode, worldwide)', + 'iso-8859-1 (Western Europe)', + 'iso-8859-2 (Central Europe)', + 'iso-8859-3 (Maltese)', + 'iso-8859-4 (Baltic Rim)', + 'iso-8859-5 (Cyrillic)', + 'iso-8859-6-i (Arabic)', + 'iso-8859-7 (Greek)', + 'iso-8859-8-i (Hebrew)', + 'iso-8859-9 (Turkish)', + 'iso-8859-10 (Latin 6)', + 'iso-8859-13 (Latin 7)', + 'iso-8859-14 (Celtic)', + 'iso-8859-15 (Latin 9)', + 'us-ascii (basic English)', + 'euc-jp (Japanese, Unix)', + 'shift_jis (Japanese, Win/Mac)', + 'iso-2022-jp (Japanese, email)', + 'euc-kr (Korean)', + 'gb2312 (Chinese, simplified)', + 'big5 (Chinese, traditional)', + 'tis-620 (Thai)', + 'koi8-r (Russian)', + 'koi8-u (Ukrainian)', + 'macintosh (MacRoman)', + 'windows-1250 (Central Europe)', + 'windows-1251 (Cyrillic)', + 'windows-1252 (Western Europe)', + 'windows-1253 (Greek)', + 'windows-1254 (Turkish)', + 'windows-1255 (Hebrew)', + 'windows-1256 (Arabic)', + 'windows-1257 (Baltic Rim)', + ], ) ); } -if ($File->{HTTP_Charset} ne $File->{META_Charset} - and $File->{HTTP_Charset} ne '' - and $File->{META_Charset} ne '' - and $File->{Charset} ne 'unknown') { - &add_warning(<<"EOHD"); - <strong>Character Encoding mismatch!</strong> - The character encoding specified in the HTTP header - («<code>$File->{HTTP_Charset}</code>») is different from the - one specified in the META element - («<code>$File->{META_Charset}</code>»). - I will use «<code>$File->{Charset}</code>» for this validation. -EOHD -} elsif ($File->{HTTP_Charset} ne $File->{XML_Charset} - and $File->{HTTP_Charset} ne '' - and $File->{XML_Charset} ne '' - and $File->{Charset} ne 'unknown') { - &add_warning(<<"EOHD"); - <strong>Character Encoding mismatch!</strong> - The character encoding specified in the HTTP header - («<code>$File->{HTTP_Charset}</code>») is different from the - one specified in the XML declaration - («<code>$File->{XML_Charset}</code>»). - I will use «<code>$File->{Charset}</code>» for this validation. -EOHD -} -if ($File->{Use_Charset} ne $File->{Charset}) { - &add_warning(<<"EOHD"); - <strong>Character Encoding Override in effect!</strong> - The detected character encoding - («<code>$File->{Charset}</code>») has been supressed and the - character encoding («<code>$File->{Use_Charset}</code>») - used instead. -EOHD - $File->{Tentative} |= T_ERROR; -} -if ($File->{Use_Charset} eq 'unknown') { - &add_warning(<<"EOHD"); - <strong>No Character Encoding detected!</strong> - To assure correct validation, processing, and display, - it is important that the character encoding is properly - labeled. - <a href='http://www.w3.org/International/O-charset.html'>Further - explanations</a>. -EOHD - $File->{Tentative} |= T_DEBUG; # WOuld be T_WARN, but the complaints... -} -## special warning because of iconv bug -if ( $File->{Use_Charset} eq 'macintosh' ) { - &add_warning("'macintosh' <code>charset</code> not completely supported, sorry (might get errors saying 'illegal character number 0')."); + +# +# By default, use SGML catalog file and SGML Declaration. +my $catalog = File::Spec->catfile($CFG->{'SGML Library'}, 'sgml.soc'); +my @xmlflags = qw( + -R + -wvalid + -wnon-sgml-char-ref + -wno-duplicate + -wunclosed + ); + +# +# Switch to XML semantics if file is XML. +if (&is_xml($File->{Type})) { + $catalog = File::Spec->catfile($CFG->{'SGML Library'}, 'xml.soc'); + push(@xmlflags, '-wxml'); } -{ # block for character conversion and checking - my @lines; - unless ($File->{Use_Charset} eq 'utf-8' or $File->{Use_Charset} eq 'unknown') { - my ($command, $result_charset) = split " ", $charsets->{$File->{Use_Charset}}, 2; - if ($command eq 'I') { - eval {my $c = Text::Iconv->new($result_charset, 'utf-8')}; - $command = '' if ($@); - } - elsif ($command eq 'X') { - $@ = "$File->{Use_Charset} undefined; replace by $result_charset"; - } - if ($command ne 'I') { - &print_table; - &print_warnings; - &print_charset_error($@, $File->{Use_Charset}); - &clean_up_and_exit; - } - my $c = Text::Iconv->new($result_charset, 'utf-8'); - my $line = 0; - for (@{$File->{Content}}) { - my $in = $_; - $line++; - $_ = $c->convert($_); # $_ is local!! - push @lines, $line if ($in ne "" and $_ eq ""); - } - } - # check correctness of UTF-8 both for UTF-8 input and for conversion results - unless ($File->{Use_Charset} eq 'unknown') { - for (my $i = 0; $i < $#{$File->{Content}}; $i++) { - # substitution needed for very long lines (>32K), - # to avoid backtrack stack overflow - local $_ = $File->{Content}->[$i]; - s/ [\x00-\x7F] # ASCII - | [\xC2-\xDF] [\x80-\xBF] # non-overlong 2-byte sequences - | \xE0[\xA0-\xBF] [\x80-\xBF] # excluding overlongs - | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte sequences - | \xED[\x80-\x9F] [\x80-\xBF] # excluding surrogates - | \xF0[\x90-\xBF] [\x80-\xBF]{2} # planes 1-3 - | [\xF1-\xF3] [\x80-\xBF]{3} # planes 4-15 - | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 - //xg; - push @lines, $i if length; - } - } - if(@lines) { - my $lines = $#lines ? "lines " : "line "; - $lines .= join ", ", @lines; - &print_table; - &print_warnings; - print <<"EOF"; - <p class="error"> - Sorry, I am unable to validate this document because on - <strong>$lines</strong> it contained - some byte(s) that I cannot interpret as - <code>$File->{Use_Charset}</code>. - Please check both the content of the file - and the character encoding indication. - </p> -EOF - &clean_up_and_exit; - } + +# +# Defaults for SP; turn off fixed charset mode and set encoding to UTF-8. +$ENV{SP_CHARSET_FIXED} = 'NO'; +$ENV{SP_ENCODING} = 'UTF-8'; +$ENV{SP_BCTF} = 'UTF-8'; + +# +# Tell onsgmls about the SGML Library. +$ENV{SGML_SEARCH_PATH} = $CFG->{'SGML Library'}; + + +## +## HTML. Turn back to SGML semantics. +#if (&is_html($File->{Type})) { +# $ENV{SP_CHARSET_FIXED} = 'YES'; +# $ENV{SP_ENCODING} = 'UTF-8'; +# $catalog = File::Spec->catfile($CFG->{'SGML Library'}, 'catalog'); +# @xmlflags = '-wnon-sgml-char-ref'; +#} + +## +## MathML and XHTML. Must be here because they're usually served as text/html +## to deal with braindead browsers. IOW, these override the check for &is_html. +#$catalog = File::Spec->catfile($CFG->{'SGML Library'}, 'xhtml.soc') +# if &is_xhtml($File->{Type}); +#$catalog = File::Spec->catfile($CFG->{'SGML Library'}, 'mathml.soc') +# if &is_mathml($File->{Type}); + + +my @cmd = ($CFG->{'SGML Parser'}, '-c', $catalog, '-E0', @xmlflags); + +if ($DEBUG) { + &add_table($File, 'Command', [1, 2, "@cmd"]); + &add_table($File, 'SP_CHARSET_FIXED', [1, 2, "<code>$ENV{SP_CHARSET_FIXED}</code>"]); + &add_table($File, 'SP_ENCODING', [1, 2, "<code>$ENV{SP_ENCODING}</code>"]); + &add_table($File, 'SP_BCTF', [1, 2, "<code>$ENV{SP_BCTF}</code>"]); } -my $xmlflags = '-wnon-sgml-char-ref'; -my $catalog = $sgmlstuff . '/catalog'; - -if ($File->{Type} eq 'xhtml') { - $catalog = $sgmlstuff . '/xhtml.soc'; - $ENV{SP_CHARSET_FIXED} = 'YES'; - $ENV{SP_ENCODING} = 'UTF-8'; - $xmlflags = '-wxml'; -} elsif ($File->{Type} eq 'svg') { - $catalog = $sgmlstuff . '/svg.soc'; - $ENV{SP_CHARSET_FIXED} = 'YES'; - $ENV{SP_ENCODING} = 'UTF-8'; - $xmlflags = '-wxml'; -} elsif ($File->{Type} eq 'smil') { - $catalog = $sgmlstuff . '/smil.soc'; - $ENV{SP_CHARSET_FIXED} = 'YES'; - $ENV{SP_ENCODING} = 'UTF-8'; - $xmlflags = '-wxml'; -} elsif ($File->{Type} eq 'mathml') { - $catalog = $sgmlstuff . '/mathml.soc'; - $ENV{SP_CHARSET_FIXED} = 'NO'; - $ENV{SP_ENCODING} = 'XML'; - $xmlflags = '-wxml '; - $sp = $osp; # *WARNING* *WARNING* Danger Will Robinson! :-) -} elsif ($File->{Type} eq 'xml' or $File->{Namespace}) { - # no doctype, with xmlns attr on 1st element - $File->{Type} = 'xml'; # @@ probably a better way to do this - $catalog = $sgmlstuff . '/sp-1.3/pubtext/xml.soc'; - $ENV{SP_CHARSET_FIXED} = 'YES'; - $ENV{SP_ENCODING} = 'XML'; - $xmlflags = '-wxml'; - $xmlflags .= ' -wno-valid' unless $File->{DOCTYPE}; +# +# Temporary filehandles. +my $spin = IO::File->new_tmpfile; +my $spout = IO::File->new_tmpfile; +my $sperr = IO::File->new_tmpfile; + +# +# Dump file to a temp file for parsing. +for (@{$File->{Content}}) { + print $spin $_, "\n"; } -my $command = "$sp -f$temp -E0 $xmlflags -c $catalog"; +# +# seek() to beginning of the file. +seek $spin, 0, 0; -&add_table("nsgmls command line", "<code>$command</code>") if $DEBUG; +# +# Run it through SP, redirecting output to temporary files. +my $pid = do { + no warnings 'once'; + local(*SPIN, *SPOUT, *SPERR) = ($spin, $spout, $sperr); + open3("<&SPIN", ">&SPOUT", ">&SPERR", @cmd); +}; -open CHECKER, "|$command - >$temp.esis" - or &internal_error ("open(|$command - >$temp.esis) returned: $!"); -for (@{$File->{Content}}) {print CHECKER $_, "\n"}; -close CHECKER; +# +# Close input file, reap the kid, and rewind temporary filehandles. +undef $spin; +waitpid $pid, 0; +seek $_, 0, 0 for $spout, $sperr; -$File = &parse_errors($File, $temp); # Parse error output. +$File = &parse_errors($File, $sperr); # Parse error output. +undef $sperr; # Get rid of no longer needed filehandle. $File->{ESIS} = []; my $elements_found = 0; -open ESIS, "$temp.esis" or &internal_error("open($temp.esis) returned: $!"); -while (<ESIS>) { +while (<$spout>) { push @{$File->{'DEBUG'}->{ESIS}}, $_; $elements_found++ if /^\(/; @@ -623,101 +593,103 @@ while (<ESIS>) { chomp; # Removes trailing newlines push @{$File->{ESIS}}, $_; } -close ESIS or warn "close($temp.esis) returned: $!"; - -my $fpi; -my $version = 'unknown'; -if ($File->{Type} eq 'xhtml' or $File->{Type} eq 'mathml' or $File->{Type} eq 'svg' or $File->{Type} eq 'smil') { - $fpi = $File->{DOCTYPE}; -} elsif ($File->{Type} eq 'xml') { - $fpi = 'XML'; +undef $spout; + +if ($File->{ESIS}->[-1] =~ /^C$/) { + undef $File->{ESIS}->[-1]; + $File->{'Is Valid'} = TRUE; } else { - for (@{$File->{ESIS}}) { - next unless /^AVERSION CDATA (.*)/; - $fpi = $1; - last; - } - # Needed for HTML4 Strict, which has no version attribute on the HTML element - if (length $File->{DOCTYPE} and not defined $fpi) {$fpi = $File->{DOCTYPE}}; + $File->{'Is Valid'} = FALSE; +} + + +# +# Set Version to be the FPI initially. +$File->{Version} = $File->{DOCTYPE}; + +# +# Extract any version attribute from the ESIS. +for (@{$File->{ESIS}}) { + no warnings 'uninitialized'; + next unless /^AVERSION CDATA (.*)/; + $File->{Version} = $1; + last; +} + +# +# Force "XML" if type is an XML type and an FPI was not found. +# Otherwise set the type to be the FPI. +if (&is_xml($File->{Type}) and not $File->{DOCTYPE}) { + $File->{Version} = 'XML'; +} else { + $File->{Version} = $File->{DOCTYPE} unless $File->{Version}; } -$version = $pub_ids->{$fpi} || 'unknown'; + + +#$File->{Version} = $File->{DOCTYPE} if &is_xhtml($File->{Type}); +#$File->{Version} = $File->{DOCTYPE} if &is_mathml($File->{Type}); +#$File->{Version} = $File->{DOCTYPE} if &is_svg($File->{Type}); +#$File->{Version} = $File->{DOCTYPE} if &is_smil($File->{Type}); + +# +# Get the pretty text version of the FPI if a mapping exists. +$File->{Version} = $CFG->{'FPI to Text'}->{$File->{Version}} || $File->{Version}; + + +if ($File->{'Is Upload'}) { + &add_table($File, 'Doctype', $File->{Version}); +} else { + &add_table($File, qq(<label accesskey="3" for="doctype" title="Document Type of Validate Page (accesskey: 3)">Doctype</label>), + $File->{Version}, + &CGI::popup_menu( + -name => 'doctype', + -id => 'doctype', + -values => [ + '(detect automatically)', + 'XHTML 1.0 Strict', + 'XHTML 1.0 Transitional', + 'XHTML 1.0 Frameset', + 'HTML 4.01 Strict', + 'HTML 4.01 Transitional', + 'HTML 4.01 Frameset', + 'HTML 3.2', + 'HTML 2.0', + ], + ) + ); +} + if ($File->{Type} eq 'xml' or $File->{Type} eq 'xhtml') { - &add_table("Document Type", $version); if ($File->{Type} eq 'xhtml' and $File->{Namespace} ne 'http://www.w3.org/1999/xhtml') { - &add_warning ("Unknown namespace («<code>$File->{Namespace}</code>») for text/html document!"); + &add_warning($File, "Unknown namespace («<code>$File->{Namespace}</code>») for text/html document!"); if ($File->{Namespace} ne '') { - &add_table("Root Namespace", - "<a href='$File->{Namespace}'>$File->{Namespace}</a>"); + &add_table($File, "Root Namespace", + qq(<a href="$File->{Namespace}">$File->{Namespace}</a>)); } } elsif ($File->{Type} eq 'svg' and $File->{Namespace} ne 'http://www.w3.org/2000/svg') { - &add_warning ("Unknown namespace («<code>$File->{Namespace}</code>») for SVG document!"); + &add_warning($File, "Unknown namespace («<code>$File->{Namespace}</code>») for SVG document!"); if ($File->{Namespace} ne '') { - &add_table("Root Namespace", - "<a href='$File->{Namespace}'>$File->{Namespace}</a>"); + &add_table($File, "Root Namespace", + qq(<a href="$File->{Namespace}">$File->{Namespace}</a>)); } } else { if ($File->{Namespace} ne '') { - &add_table("Root Namespace", - "<a href='$File->{Namespace}'>$File->{Namespace}</a>"); + &add_table($File, "Root Namespace", + qq(<a href="$File->{Namespace}">$File->{Namespace}</a>)); } } if (scalar keys %{$File->{Namespaces}} > 1) { my $namespaces = "<ul>"; for (keys %{$File->{Namespaces}}) { - $namespaces .= "\t<li><a href='$_'>$_</a></li>\n" + $namespaces .= qq(\t<li><a href="$_">$_</a></li>\n) unless $_ eq $File->{Namespace}; # Don't repeat Root Namespace. } - &add_table("Other Namespaces", $namespaces . "</ul>"); + &add_table($File, "Other Namespaces", $namespaces . "</ul>"); } -} else { - &add_table("Current Doctype", $version); # is this current or detected??? -} - -unless ($q->param('uploaded_file')) { - &add_table(qq(<label title="Select Doctype" for="doctype">Select Doctype</label>), - $q->popup_menu(-name => 'doctype', -id => 'doctype', - -values => [ - '(detect automatically)', - 'XHTML 1.0 Strict', - 'XHTML 1.0 Transitional', - 'XHTML 1.0 Frameset', - 'HTML 4.01 Strict', - 'HTML 4.01 Transitional', - 'HTML 4.01 Frameset', - 'HTML 3.2', - 'HTML 2.0', - ], - -default => $q->param('doctype'), - ) - ); } -&print_table; -&print_tip_of_the_day; -&print_warnings; - -print "<h2>Validation Results</h2>\n"; - -if ($File->{Type} eq 'xml' or $File->{Type} eq 'xhtml' or $File->{Type} eq 'mathml' or $File->{Type} eq 'svg' or $File->{Type} eq 'smil') { - my $xmlvalid = ($File->{DOCTYPE} ? ' and validity' : ''); - print <<"EOHD"; - <p> - Below are the results of checking this document for <a - href="http://www.w3.org/TR/REC-xml#sec-conformance">XML - well-formedness</a>$xmlvalid. - </p> - -EOHD -} else { - print <<"EOHD"; - <p> - Below are the results of attempting to parse this document with - an SGML parser. - </p> -EOHD -} if (defined $File->{Tentative}) { my $class = ''; @@ -727,7 +699,7 @@ if (defined $File->{Tentative}) { $class .= ($File->{Tentative} & T_FATAL ? ' fatal' :''); unless ($File->{Tentative} == T_DEBUG) { - print <<".EOF."; + $File->{Notice} = <<".EOF."; <p id="Notice" class="$class"> Please note that you have chosen one or more options that alter the content of the document before validation, or have not provided enough @@ -745,21 +717,42 @@ if (defined $File->{Tentative}) { } } -if (scalar @{$File->{Errors}}) { - $q->param('ss', TRUE); - &report_errors($File) + +if ($File->{Opt}->{Output} eq 'xml') { + &report_xml($File); +} elsif ($File->{Opt}->{Output} eq 'earl') { + &report_earl($File); +} elsif ($File->{Opt}->{Output} eq 'n3') { + &report_n3($File); } else { - &report_valid($File) -} + print $File->{Results}; + print qq( <div class="meat">\n); -&weblint() if $q->param('weblint'); -&outline($File) if $q->param('outline'); -&show_source($File) if $q->param('ss'); -&parse_tree($File) if $q->param('sp'); -&show_esis($File) if $q->param('esis'); -&show_errors($File) if $q->param('errors'); + if ($File->{'Is Valid'} and not $DEBUG) { + &report_valid($File); + } else { + $File->{Opt}->{'Show Source'} = TRUE; + print &jump_links($File); + print qq(<div class="splash">\n); + &print_table($File); + &print_warnings($File); + print qq(</div>\n); + &report_errors($File); + &outline($File) if $File->{Opt}->{'Outline'}; + &show_source($File) if $File->{Opt}->{'Show Source'}; + &parse_tree($File) if $File->{Opt}->{'Show Parsetree'}; + &show_esis($File) if $File->{Opt}->{'Show ESIS'}; + &show_errors($File) if $File->{Opt}->{'Show Errors'}; + } -&clean_up_and_exit; + print qq(</div> <!-- End of "meat". -->\n); # End of "Meat". + print $File->{'Footer'}; +} + +# +# Get rid of $File object and exit. +undef $File; +exit; ############################################################################# @@ -767,188 +760,216 @@ if (scalar @{$File->{Errors}}) { ############################################################################# # -# Add info to the metadata table datastructure. -sub add_table {push @{$File->{Table}}, { Head => $_[0], Tail => $_[1]}}; +# Add a row to the metadata-table datastructure. +# +# Takes 3 or more arguments. The first is the reference to the datastructure to +# use for storing the table. The second is the header for this row. The third +# and subsequent arguments are table data cells. Each argument corresponds to +# exactly one table data cell. If the argument is a string it is inserted +# directly. If it is a reference it is assumed to be a reference to an array +# of 3 elements. The 3 are: rowspan, colspan, and data. +# +sub add_table { + my $File = shift; + my $TH = shift; + my @td; + + foreach my $td (@_) { + if (ref $td) { + push @td, $td; + } else { + push @td, [1, 1, $td]; + } + } + + if (defined $File->{Table}->{Max}) { + $File->{Table}->{Max} = scalar @td + if $File->{Table}->{Max} < scalar @td; + } else { + $File->{Table}->{Max} = scalar @td; + } + + push @{$File->{Table}->{Data}}, { Head => $TH, Tail => \@td}; +} + + # # Print the table containing the metadata about the Document Entity. sub print_table { - my $tableEntry; - unless ($q->param('uploaded_file')) { - add_table("Options", - ' <label title="Show Page Source"><input type="checkbox" value="" name="ss"' . - ($q->param('ss') ? 'checked="checked"' : '') . " />Show Source</label>\n" . - ' <label title="Show an Outline of the document"><input type="checkbox" value="" name="outline"' . - ($q->param('outline') ? 'checked="checked"' : '') . " />Outline</label>\n" . - ' <label title="Show Parse Tree"><input type="checkbox" value="" name="sp"' . - ($q->param('sp') ? 'checked="checked"' : '') . " />Parse Tree</label>\n" . - ' <label title="Exclude Attributes from Parse Tree"><input type="checkbox" value="" name="noatt"' . - ($q->param('noatt') ? 'checked="checked"' : '') . " />...no attributes</label>\n" - ); + my $File = shift; + + unless ($File->{'Is Valid'}) { + &add_table($File, 'Errors', scalar(@{$File->{Errors}})); } - print ' <form method="get" action="/check">' - unless $q->param('uploaded_file'); - print qq(<table class="header">\n); - for $tableEntry (@{$File->{Table}}) { - print " <tr>\n"; - print ' ' x 6, "<th>", $$tableEntry{Head}, ": </th>\n"; - print ' ' x 6, "<td colspan='3'>", $$tableEntry{Tail}, "</td>\n"; - print " </tr>\n"; + + print qq( <form id="form" method="get" action="check">\n) + unless $File->{'Is Upload'}; + + print join '', @{&serialize_table($File, 'header')}; + + my $Options = {}; + my $Form = {}; + $Form->{Table}->{Fieldset} = TRUE; + $Form->{Table}->{Accesskey} = '4'; + $Form->{Table}->{Legend} = 'Revalidate With Options: (accesskey: 4)'; + + + add_table($Options, '', qq(<label title="Show Page Source (accesskey: 5)"><input type="checkbox" value="" name="ss" ) . + qq(accesskey="5" ) . + ($File->{Opt}->{'Show Source'} ? 'checked="checked"' : '') . ' />Show Source</label>', + '<label title="Show an Outline of the document (accesskey: 6)"><input type="checkbox" value="" name="outline" ' . + qq(accesskey="6" ) . + ($File->{Opt}->{'Outline'} ? 'checked="checked"' : '') . ' />Outline</label>'); + add_table($Options, '', + '<label title="Show Parse Tree (accesskey: 7)"><input type="checkbox" value="" name="sp" ' . + qq(accesskey="7" ) . + ($File->{Opt}->{'Show Parsetree'} ? 'checked="checked"' : '') . ' />Parse Tree</label>', + '<label title="Exclude Attributes from Parse Tree (accesskey: 8)"><input type="checkbox" value="" name="noatt" ' . + qq(accesskey="8" ) . + ($File->{Opt}->{'No Attributes'} ? 'checked="checked"' : '') . ' />...no attributes</label>' + ); + + add_table( + $Form, + '<input type="submit" value="Revalidate" accesskey="9" title="Revalidate file (accesskey: 9)" />', + [1, $File->{Table}->{Max}, join('', @{&serialize_table($Options, 'options')})] + ); + + print <<".EOF."; + <fieldset> + <legend accesskey="4">Revalidate With Options</legend> +.EOF. + print join '', @{&serialize_table($Form, 'header')}; + print qq( </fieldset>\n); + + print qq( </form>\n) unless $File->{'Is Upload'}; +} + +# +# Serialize a table datastructure ($th, @td) into HTML. +# Takes two arguments; the datastructure, and a CSS class name for the table. +# Returns a reference to an array of lines (to enable reindentation). +sub serialize_table { + my $table = shift; + my $class = shift; + my @table = (); + + push @table, qq(<table class="$class">\n); + + foreach my $tr (@{$table->{Table}->{Data}}) { + if (ref $tr->{Head}) { + my $opts = ''; + push @table, " <tr>\n"; + if ($tr->{Head}->[0] > 1) { + $opts .= qq( rowspan="$tr->{Head}->[0]"); + } + if ($tr->{Head}->[1] > 1) { + $opts .= qq( colspan="$tr->{Head}->[1]"); + } + push @table, " <th$opts>" . $tr->{Head}->[2] . ": </th>\n"; + } elsif ($tr->{Head}) { + push @table, " <tr>\n"; + push @table, " <th>" . $tr->{Head} . ": </th>\n"; + } else { + push @table, " <tr>\n"; + # Table has no header column. + } + + for (my $i = 0; $i < scalar @{$tr->{Tail}}; $i++) { + my $opts = ''; + if ($tr->{Tail}->[$i]->[0] > 1) { + $opts .= qq( rowspan="$tr->{Tail}->[$i]->[0]"); + } + if ($tr->{Tail}->[$i]->[1] > 1) { + $opts .= qq( colspan="$tr->{Tail}->[$i]->[1]"); + } + push @table, qq( <td$opts>) . $tr->{Tail}->[$i]->[2] . "</td>\n"; + } + push @table, " </tr>\n"; } - print qq( <tr><th><input type="submit" value="Revalidate" /></th><td> </td>\n) - unless $q->param('uploaded_file'); - print " </table></form>\n"; + push @table, qq(</table>\n); + + return \@table; } + # # Add a waring message to the output. -sub add_warning {push @{$File->{Warnings}}, shift}; +sub add_warning {push @{shift->{Warnings}}, shift}; + # # Print out a list of warnings. sub print_warnings { + my $File = shift; return unless defined @{$File->{Warnings}}; - print qq( <div id="skip"><h2>Notes & Warnings</h2>\n <ul>\n); + print qq( <ul id="Warnings">\n); print qq( <li>$_</li>\n) for @{$File->{Warnings}}; - print " </ul></div>\n"; + print " </ul>\n"; } # # Print HTML explaining why/how to use a DOCTYPE Declaration. -sub output_doctype_spiel { - print <<"EOF"; +sub doctype_spiel { + return <<".EOF."; <p> You should make the first line of your HTML document a DOCTYPE declaration, for example, for a typical <a - href="http://www.w3.org/TR/html4/">HTML 4.01</a> document: + href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> document: </p> <pre> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - <HTML> - <HEAD> - <TITLE>Title</TITLE> - </HEAD> - - <BODY> + <!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>Title</title> + </head> + + <body> <-- ... body of document ... --> - </BODY> - </HTML></pre> - -EOF -} - -# -# Spit out some closing HTML at the end of output. -sub output_closing { - print <<"EOF"; -<address> - <a href="${abs_svc_uri}check/referer"><img - src="http://www.w3.org/Icons/valid-html401" height="31" width="88" - align=right border="0" alt="Valid HTML 4.01!"></a> - <a href="/feedback.html">Gerald Oskoboiny</a><br> - Last modified: $DATE -</address> - -</body> - -</html> -EOF + </body> + </html> + </pre> +.EOF. } # # Leave a message and then die (use for internal errors only) sub internal_error { + my $File = shift; my ($dieMessage) = shift; print <<"EOF"; - <hr> + <hr /> <strong class="error">Internal server error ($dieMessage).</strong> - Please contact <a href="mailto:$MAINTAINER">maintainer</a>. + Please contact <a href="mailto:$CFG->{Maintainer}">maintainer</a>. EOF - &output_closing; - &erase_stuff; - die "$dieMessage\n"; -} - - -# -# Delete temporary files. -sub erase_stuff { - unlink $temp or warn "unlink($temp) returned: $!\n"; - unlink "$temp.esis" or warn "unlink($temp.esis) returned: $!\n"; - unlink "$temp.weblint"; -} - - -# -# Clean up and exit... :-) -sub clean_up_and_exit { - &output_closing; - &erase_stuff; - exit; + print $File->{'Footer'}; + croak $dieMessage, "\n"; } # -# Redirect them to the home page. Simplistic error handling. -sub redirect_to_home_page { - print <<".EOF."; -Status: 301 Moved Permanently -Content-Type: text/html -Location: $abs_svc_uri - -<title>Moved!</title> -<p>Please see <a href="$abs_svc_uri">the home page.</a></p> -.EOF. - &clean_up_and_exit; -} - -# # Generate HTML for the "Jump to:" links in results. -sub build_jump_links { - - my $text = ''; - my $count = 0; - - $count++ if $q->param('ss'); - $count++ if $q->param('sp'); - $count++ if $q->param('weblint'); - $count++ if $q->param('outline'); - - if ( $count ) { - $text .= " <p>\n Jump to: "; - if ( $q->param('weblint') ) { - $text .= "<a\n href=\"#weblint\">Weblint Results</a>"; - $count--; - $text .= " or " if ( $count == 1 ); - $text .= ", " if ( $count > 1 ); - } - if ( $q->param('outline') ) { - $text .= "<a\n href=\"#outline\">Outline</a>"; - $count--; - $text .= " or " if ( $count == 1 ); - $text .= ", " if ( $count > 1 ); - } - if ( $q->param('ss') ) { - $text .= "<a\n href=\"#source\">Source Listing</a>"; - $count--; - $text .= " or " if ( $count == 1 ); - $text .= ", " if ( $count > 1 ); - } - if ( $q->param('sp') ) { - $text .= "<a\n href=\"#parse\">Parse Tree</a>"; - } - $text .= ".\n </p>\n\n"; - } - return $text; - +sub jump_links { + return <<" .EOF."; + <p id="skip" class="jumpbar"> + Jump To: + [<a title="Result of Validation" href="#results">Results</a>] + [<a title="Listing of Source Input" href="#source">Source Listing</a>] + [<a title="Document Parse Tree" href="#parse">Parse Tree</a>] + [<a title="Document Outline" href="#outline">Outline</a>] + </p> + .EOF. } # # Proxy authentication requests. sub authenticate { + my $File = shift; my $resource = shift; my $authHeader = shift; my $realm = $resource; @@ -959,80 +980,66 @@ sub authenticate { Status: 401 Authorization Required WWW-Authenticate: $authHeader Connection: close -Content-Type: text/html - -<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\"> -<HTML><HEAD> -<TITLE>401 Authorization Required</TITLE> -</HEAD><BODY> -<H1>Authorization Required</H1> -<p> - Sorry, I am not authorized to access the specified URI. -</p> - -<p> - The URI you specified, -</p> - -<blockquote> - <code><a href="$resource">$resource</a></code> -</blockquote> - -<p> - returned a 401 "authorization required" response when I tried - to download it. -</p> - -<p> - You should have been prompted by your browser for a - username/password pair; if you had supplied this information, I - would have forwarded it to your server for authorization to - access the resource. You can use your browser's "reload" function - to try again, if you wish. -</p> - -<p> - Of course, you may not want to trust me with this information, - which is fine. I can tell you that I don't log it or do - anything else nasty with it, and you can <a - href="${abs_svc_uri}source/">download the source for - this service</a> to see what it does, but you have no guarantee - that this is actually the code I'm using; you basically have to - decide whether to trust me or not. :-) -</p> - -<p> - You should also be aware that the way we proxy this authentication - information defeats the normal working of HTTP Authentication. - If you authenticate to server A, your browser may keep sending - the authentication information to us every time you validate - a page, regardless of what server it's on, and we'll happily pass - that on to the server thereby making it possible for a malicious - server operator to capture your credentials. -</p> - -<p> - Due to the way HTTP Authentication works there is no way we can - avoid this. We are using some "tricks" to fool your client into - not sending this information in the first place, but there is no - guarantee this will work. If security is a conern to you, you - may wish to avoid validating protected resources or take extra - precautions to prevent your browser from sending authentication - information when validating other servers. -</p> - -<p> - Also note that you shouldn't use HTTP Basic Authentication for - anything which really needs to be private, since the password - goes across the network unencrypted. -</p> +Content-Type: text/html; charset=utf-8 + +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> +<html lang="en" xml:lang="en"> + <head><title>401 Authorization Required</title></head> + <body> + <h1>Authorization Required</h1> + <p>Sorry, I am not authorized to access the specified URI.</p> + <p> + The URI you specified, <code><a href="$resource">$resource</a></code>, + returned a 401 "authorization required" response when I tried + to download it. + </p> + <p> + You should have been prompted by your browser for a + username/password pair; if you had supplied this information, I + would have forwarded it to your server for authorization to + access the resource. You can use your browser's "reload" function + to try again, if you wish. + </p> + <p> + Of course, you may not want to trust me with this information, + which is fine. I can tell you that I don't log it or do + anything else nasty with it, and you can <a + href="$CFG->{'Home Page'}source/">download the source for + this service</a> to see what it does, but you have no guarantee + that this is actually the code I'm using; you basically have to + decide whether to trust me or not. :-) + </p> + <p> + You should also be aware that the way we proxy this authentication + information defeats the normal working of HTTP Authentication. + If you authenticate to server A, your browser may keep sending + the authentication information to us every time you validate + a page, regardless of what server it's on, and we'll happily pass + that on to the server thereby making it possible for a malicious + server operator to capture your credentials. + </p> + <p> + Due to the way HTTP Authentication works there is no way we can + avoid this. We are using some "tricks" to fool your client into + not sending this information in the first place, but there is no + guarantee this will work. If security is a conern to you, you + may wish to avoid validating protected resources or take extra + precautions to prevent your browser from sending authentication + information when validating other servers. + </p> + <p> + Also note that you shouldn't use HTTP Basic Authentication for + anything which really needs to be private, since the password + goes across the network unencrypted. + </p> EOF } # # Complain about unknown HTTP responses. -sub print_unknown_http_error_message { +sub http_error { my $uri = shift; my $code = shift; my $message = shift; @@ -1044,7 +1051,7 @@ sub print_unknown_http_error_message { </p> <blockquote> - <code>$code $message</code> + <p><code>$code $message</code></p> </blockquote> <p> @@ -1056,29 +1063,6 @@ EOF # -# Complain about strange charsets. -sub print_charset_error { - my $error = shift; - my $charset = shift; - - print <<".EOF."; - <p>Sorry! - A fatal error occurred when attempting to transcode the character encoding - of the document. Either we do not support this character encoding yet, or you - have specified a non-existent character encoding (often a misspelling). - </p> - <p>The detected character encoding was "$charset".</p> - <p>The error was "$error".</p> - <p> - If you believe the character encoding to be valid you can submit a request for - that character encoding (see the <a href="/feedback.html">feedback page</a> - for details) and we will look into supporting it in the future. - </p> -.EOF. -} - - -# # Print blurb advocating using the CSS Validator. sub output_css_validator_blurb { my $uri = shift; @@ -1096,99 +1080,22 @@ EOHD } -sub print_tip_of_the_day{ - my(%tips); - open TIPS, $tips_db - or &internal_error("open($tips_db) returned $!"); - - # quick-n-dirty XML parser... - local($/) = '>'; - my(@stack, $line, $top, $name, $l, $addr, $slug); - - @stack = (); - $line = 1; - $slug = ''; - - while(<TIPS>){ - if(m,/>$,){ # empty element - $slug .= $_ if $slug; - } - elsif(m,</(\w+),){ - my($content, $tag); - $content = $`; - $tag = $& . $'; - $slug .= $content if $slug; - - $name = $1; - $top = pop(@stack); - $l = pop(@stack); - if($name ne $top){ - print STDERR "@stack \n"; - die "found /$name expecting /$top $l"; - } - - if($name eq 'a'){ - $tips{$addr} = $slug; - $slug = ''; - } - - $slug .= $tag if $slug; - - } - elsif(m,<(\w+),){ - $slug .= $_ if $slug; - - $name = $1; - push(@stack, $line); - push(@stack, $name); - if($name eq 'a'){ - if(m,href=\"([^\"]+)\",){ - $addr = $1; - $slug = ' '; - } - } - } - - while(s/\n//){ - $line++; - } - } - - my @tipAddrs = keys %tips; - my $tipQty = $#tipAddrs + 1; +sub daily_tip { + my @tipAddrs = keys %{$CFG->{'Tips DB'}}; srand(time()); - my $whichTip = rand($tipQty); - my $tipAddr = $tipAddrs[$whichTip]; - my $tipSlug = $tips{$tipAddr}; - - print <<"EOHD"; - <div class="tip" align="center" style="text-align: center; background-color: yellow"> - <strong><a href="http://www.w3.org/2001/06tips/">TIP</a>:</strong> - <a href="$tipAddr">$tipSlug</a> - </div> + my $tipAddr = $tipAddrs[rand scalar @tipAddrs]; + my $tipSlug = $CFG->{'Tips DB'}->{$tipAddr}; + + return <<"EOHD"; + <dl class="tip"> + <dt><a href="http://www.w3.org/2001/06tips/">Tip Of The Day</a>:</dt> + <dd><a href="$tipAddr">$tipSlug</a></dd> + </dl> EOHD } # -# Read TAB-delimited configuration files. Returns a hash reference. -sub read_cfg { - my $file = shift; - my %cfg; - - open CFG, $file or die "open($file) returned: $!\n"; - while (<CFG>) { - next if /^\s*$/; - next if /^\s*#/; - chomp; - my($k, $v) = split /\t+/, $_; - $cfg{$k} = $v; - } - close CFG; - return \%cfg; -} - -# # Fetch an URI and return the content and selected meta-info. sub handle_uri { my $q = shift; # The CGI object. @@ -1205,7 +1112,7 @@ sub handle_uri { # or at least make it configurable to do so. # eg. /^(localhost(\.localdomain)?|127\..+)$/ (+ private networks) # - $ua->protocols_allowed(['http', 'https']); + $ua->protocols_allowed($CFG->{'Allowed Protocols'} || ['http', 'https']); unless ($ua->is_protocol_supported($uri)) { $File->{'Error Flagged'} = TRUE; @@ -1225,28 +1132,30 @@ sub handle_uri { unless ($res->code == 200) { if ($res->code == 401) { - &authenticate($res->request->url, $res->www_authenticate); + &authenticate($File, $res->request->url, $res->www_authenticate); } else { print $File->{Results}; - &print_unknown_http_error_message($uri, $res->code, $res->message); + &http_error($uri->as_string, $res->code, $res->message); } - &clean_up_and_exit; + print $File->{'Footer'}; + exit; } - my($type, $charset) = &parse_content_type($res->header('Content-Type')); + my($type, $charset) = &parse_content_type($File, $res->header('Content-Type')); my $lastmod = undef; if ( $res->last_modified ) { $lastmod = scalar(gmtime($res->last_modified)); } - $File->{Content} = &normalize_newlines($res->content); - $File->{Type} = $type; - $File->{HTTP_Charset} = $charset; - $File->{Modified} = $lastmod; - $File->{Server} = scalar($res->server); - $File->{Size} = scalar($res->content_length); - $File->{URI} = scalar($res->request->url); + $File->{Content} = &normalize_newlines($res->content); # FIXME: Breaks on non-ascii compatible. + $File->{Type} = $type; + $File->{Charset}->{HTTP} = $charset; + $File->{Modified} = $lastmod; + $File->{Server} = scalar $res->server; + $File->{Size} = scalar $res->content_length; + $File->{URI} = scalar $res->request->url; + $File->{'Is Upload'} = FALSE; return $File; @@ -1263,15 +1172,16 @@ sub handle_file { my $file; while (not eof $f) {$file .= <$f>}; - my($type, $charset) = &parse_content_type($h->{'Content-Type'}); + my($type, $charset) = &parse_content_type($File, $h->{'Content-Type'}); - $File->{Content} = &normalize_newlines($file); - $File->{Type} = $type; - $File->{HTTP_Charset} = $charset; - $File->{Modified} = $h->{'Last-Modified'}; - $File->{Server} = $h->{'Server'}; - $File->{Size} = $h->{'Content-Length'}; - $File->{URI} = $q->param('uploaded_file'); + $File->{Content} = &normalize_newlines($file); # FIXME: Breaks on non-ascii compatible. + $File->{Type} = $type; + $File->{Charset}->{HTTP} = $charset; + $File->{Modified} = $h->{'Last-Modified'}; + $File->{Server} = $h->{'Server'}; + $File->{Size} = $h->{'Content-Length'}; + $File->{URI} = $q->param('uploaded_file'); + $File->{'Is Upload'} = TRUE; return $File; } @@ -1282,13 +1192,13 @@ sub handle_frag { my $q = shift; # The CGI object. my $File = shift; # The master datastructure. - $File->{Content} = &normalize_newlines(shift->param('fragment')); - $File->{Type} = 'html'; - $File->{HTTP_Charset} = ''; - $File->{Modified} = ''; - $File->{Server} = ''; - $File->{Size} = ''; - $File->{URI} = 'upload://Form Submission'; + $File->{Content} = &normalize_newlines($q->param('fragment')); # FIXME: Breaks on non-ascii compatible. + $File->{Type} = 'html'; + $File->{Modified} = ''; + $File->{Server} = ''; + $File->{Size} = ''; + $File->{URI} = 'upload://Form Submission'; + $File->{'Is Upload'} = TRUE; return $File; } @@ -1297,13 +1207,14 @@ sub handle_frag { # # Parse a Content-Type and parameters. Return document type and charset. sub parse_content_type { + my $File = shift; my $Content_Type = shift; my $charset = ''; my $type = ''; my($ct, @param) = split /\s*;\s*/, lc $Content_Type; - $type = $file_type->{$ct} || $ct; + $type = $CFG->{'File Type'}->{$ct} || $ct; foreach my $param (@param) { my($p, $v) = split /\s*=\s*/, $param; @@ -1314,6 +1225,17 @@ sub parse_content_type { } } + if ($type =~ m(/)) { + $File->{'Error Flagged'} = TRUE; + $File->{'Error Message'} = <<" EOF"; + <p class="error"> + Sorry, I am unable to validate this document because its returned + content-type was <code>$type</code>, which is not currently supported + by this service. + </p> + EOF + } + return $type, $charset; } @@ -1382,7 +1304,7 @@ sub supress_doctype { HTML::Parser->new(default_h => [sub {$HTML .= shift}, 'text'], declaration_h => [sub {$HTML .= '<!-- ' . $_[0] . ' -->'}, 'text'] - )->parse(join "\n", @{$file}); + )->parse(join "\n", @{$file})->eof(); return [split /\n/, $HTML]; } @@ -1391,12 +1313,11 @@ sub supress_doctype { # Parse errors reported by SP. sub parse_errors ($$) { my $File = shift; - my $file = shift; + my $fh = shift; $File->{Errors} = []; # Initialize to an (empty) anonymous array ref. - open ERRORS, "<$file" or &internal_error("open($file) returned: $!"); - for (<ERRORS>) { + for (<$fh>) { push @{$File->{'DEBUG'}->{Errors}}, $_; my($err, @errors); next if /^<OSFD>0:[0-9]+:[0-9]+:[^A-Z]/; @@ -1421,59 +1342,107 @@ sub parse_errors ($$) { or $err->{type} eq 'Q' ) { $err->{msg} = $errors[5]; - # get rid of non-BMP related error messages - # (pretending SP understands characters beyond the BMP) - if ($errors[5] =~ m/"(\d*)" is not a character number in the document character set/) { - next if $1 >= 65536 && $1 <= 1114110; - } +# # get rid of non-BMP related error messages +# # (pretending SP understands characters beyond the BMP) +# if ($errors[5] =~ m/"(\d*)" is not a character number in the document character set/) { +# next if $1 >= 65536 && $1 <= 1114110; +# } } else { $err->{type} = 'I'; $err->{msg} = $errors[4]; } + + + + + + + # An unknown FPI and no SI. + if ($err->{msg} =~ m(cannot generate system identifier for entity) + or $err->{msg} =~ m(unrecognized ({{)?DOCTYPE(}})?)i + or $err->{msg} =~ m(no document type declaration)i) { + $File->{'Error Flagged'} = TRUE; + $File->{'Error Message'} = <<".EOF."; + <div class="fatal"> + <h2>Fatal Error: $err->{msg}</h2> + <p> + I could not parse this document, because it uses a public identifier + that is not in my <a href="sgml-lib/catalog">catalog</a>. + </p> +.EOF. + $File->{'Error Message'} .= &doctype_spiel; + $File->{'Error Message'} .= " </div>\n"; + } + + # No or unknown FPI and a relative SI. + if ($err->{msg} =~ m(cannot (open|find))) { + $File->{'Error Flagged'} = TRUE; + $File->{'Error Message'} = <<".EOF."; + <div class="fatal"> + <h2>Fatal Error: $err->{msg}</h2> + <p> + I could not parse this document, because it makes reference to a + system-specific file instead of using a well-known public identifier + to specify the type of markup being used. + </p> +.EOF. + $File->{'Error Message'} .= &doctype_spiel; + $File->{'Error Message'} .= " </div>\n"; + } + + # No DOCTYPE. + if ($err->{msg} =~ m(prolog can\'t be omitted)) { + $File->{'Error Flagged'} = TRUE; + $File->{'Error Message'} = <<".EOF."; + <div class="fatal"> + <h2>Fatal Error: No DOCTYPE specified!</h2> + <p> + I could not parse this document, because it does not include a + DOCTYPE Declaration and the detected document type does not permit this. + </p> +.EOF. + $File->{'Error Message'} .= &doctype_spiel; + $File->{'Error Message'} .= " </div>\n"; + } + + + &abort_if_error_flagged($File); push @{$File->{Errors}}, $err; } - close ERRORS or &internal_error("close($file) returned: $!\n"); - + undef $fh; return $File; } - # # Generate a HTML report of detected errors. sub report_errors ($) { - print '<ul>'; my $File = shift; - foreach my $err (@{$File->{Errors}}) { - # An unknown FPI and no SI. - if ( $err->{msg} =~ m(cannot generate system identifier for entity) - or $err->{msg} =~ m(unrecognized ({{)?DOCTYPE(}})?)i - or $err->{msg} =~ m(no document type declaration)i) { - print <<" .EOF."; - <p><strong>Fatal Error</strong>: $err->{msg}</p> - <p> - I could not parse this document, because it uses a public identifier that - is not in my <a href="/sgml-lib/catalog">catalog</a>. - </p> - .EOF. - &output_doctype_spiel; - last; - } + print <<"EOHD"; + <h2 id="results" class="invalid">This Page Is <strong>NOT</strong> Valid $File->{Version}!</h2> +EOHD - # No or unknown FPI and a relative SI. - if ($err->{msg} =~ m(cannot (open|find))) { - print <<" .EOF."; - <p><strong>Fatal Error: $err->{msg}</p> + if ($File->{Type} eq 'xml' or $File->{Type} eq 'xhtml' or $File->{Type} eq 'mathml' or $File->{Type} eq 'svg' or $File->{Type} eq 'smil') { + my $xmlvalid = ($File->{DOCTYPE} ? ' and validity' : ''); + print <<"EOHD"; <p> - I could not parse this document, because it makes reference to a - system-specific file instead of using a well-known public identifier to - specify the type of markup being used. + Below are the results of checking this document for <a + href="http://www.w3.org/TR/REC-xml#sec-conformance">XML + well-formedness</a>$xmlvalid. </p> - .EOF. - &output_doctype_spiel; - last; - } +EOHD + } else { + print <<"EOHD"; + <p> + Below are the results of attempting to parse this document with + an SGML parser. + </p> +EOHD + } + print qq( <ol>\n); + + foreach my $err (@{$File->{Errors}}) { my($line, $col) = &truncate_line($File->{Content}->[$err->{line}-1], $err->{char}); # Strip curlies from lq-nsgmls output. @@ -1484,216 +1453,198 @@ sub report_errors ($) { $err->{idx} =~ s/"[^\"]*"/FOO/g; $err->{idx} =~ s/[^A-Za-z ]//g; $err->{idx} =~ s/\s+/ /g; # Collapse spaces - $err->{idx} =~ s/(^\s|\s$)//g; # Remove leading and trailing spaces. - $err->{idx} =~ s/(FOO )+/FOO /g; # Collapse FOOs. :-) - $err->{idx} =~ s/FOO FOO/FOO/g; # Collapse FOOs. :-) + $err->{idx} =~ s/(^\s|\s$)//g; # Remove leading and trailing spaces. ) + $err->{idx} =~ s/(FOO )+/FOO /g; # Collapse FOOs. + $err->{idx} =~ s/FOO FOO/FOO/g; # Collapse FOOs. $line = &ent($line); # Entity encode. $line =~ s/\t/ /g; # Collapse TABs. print qq( <li><em>Line <a href="#line-$err->{line}">$err->{line}</a>, column $col</em>: ); print qq{<span class="msg">$err->{msg}</span>}; - - if (defined $frag->{$err->{idx}}) { - print qq{ (<a href="$faqerrloc#$frag->{$err->{idx}}">explanation...</a>)}; - } elsif (DEBUG) { + if (defined $CFG->{'Error to URI'}->{$err->{idx}}) { + print qq{ (<a href="$CFG->{'Msg FAQ URI'}#$CFG->{'Error to URI'}->{$err->{idx}}">explain...</a>).}; + } elsif ($DEBUG) { print qq{ (<code style="background: red">"$err->{idx}"</code>)}; } - print "\n<pre> <code class=input>$line</code>\n"; - print " " x ($col + 2); # 2 is the number of spaces before <code> above - print " " x 4 if $col != $err->{char}; # only for truncated lines - print "<span class=markup>^</span></pre>\n"; - } - print "</ul>\n"; - print "<hr>\n"; - if ($version eq 'unknown') { - print "<p>Sorry, I can't validate this document.</p>"; - } elsif ($File->{Type} eq 'xml') { - print "<p>Sorry, this document is not well-formed XML.</p>"; - } else { - print "<p>Sorry, this document does not validate as $version.</p>"; - &output_css_validator_blurb($q->param('uri')); + print qq(\n<pre> <code class="input">$line</code>\n); + print ' ' x ($col + 2); # 2 is the number of spaces before <code> above + print ' ' x 4 if $col != $err->{char}; # only for truncated lines + print qq(<span class="markup">^</span></pre></li>\n); } + print qq( </ol>\n); } # # Output "This page is Valid" report. sub report_valid { - my $File = shift; + my $File = shift; my $gifborder = ' border="0"'; my $xhtmlendtag = ''; my($image_uri, $alttext, $gifhw); - if ($File->{Type} eq 'xml' or $File->{Type} eq 'xhtml') { - print "\n <pre>\n No errors found! "; - print '<a title="Caveat" href="#sp-lim">*</a></pre>', "\n\n"; - } else { - print "\n <pre>\n No errors found!</pre>\n\n"; - } - - unless ($version eq 'unknown' or defined $File->{Tentative}) { - if ($version =~ /^HTML 2\.0$/) { - $image_uri = "${abs_svc_uri}images/vh20"; + unless ($File->{Version} eq 'unknown' or defined $File->{Tentative}) { + if ($File->{Version} =~ /^HTML 2\.0$/) { + $image_uri = "$CFG->{'Home Page'}images/vh20"; $alttext = "Valid HTML 2.0!"; $gifborder = ""; - } elsif ($version =~ /HTML 3\.2</) { + } elsif ($File->{Version} =~ /HTML 3\.2</) { $image_uri = "http://www.w3.org/Icons/valid-html32"; $alttext = "Valid HTML 3.2!"; $gifhw = ' height="31" width="88"'; - } elsif ($version =~ /HTML 4\.0<\/a> Strict$/) { + } elsif ($File->{Version} =~ /HTML 4\.0<\/a> Strict$/) { $image_uri = "http://www.w3.org/Icons/valid-html40"; $alttext = "Valid HTML 4.0!"; $gifborder = ""; $gifhw = ' height="31" width="88"'; - } elsif ($version =~ /HTML 4\.0<\/a> /) { + } elsif ($File->{Version} =~ /HTML 4\.0<\/a> /) { $image_uri = "http://www.w3.org/Icons/valid-html40"; $alttext = "Valid HTML 4.0!"; $gifhw = ' height="31" width="88"'; - } elsif ($version =~ /HTML 4\.01<\/a> Strict$/) { + } elsif ($File->{Version} =~ /HTML 4\.01<\/a> Strict$/) { $image_uri = "http://www.w3.org/Icons/valid-html401"; $alttext = "Valid HTML 4.01!"; $gifborder = ""; $gifhw = ' height="31" width="88"'; - } elsif ($version =~ /HTML 4\.01<\/a> /) { + } elsif ($File->{Version} =~ /HTML 4\.01<\/a> /) { $image_uri = "http://www.w3.org/Icons/valid-html401"; $alttext = "Valid HTML 4.01!"; $gifhw = ' height="31" width="88"'; - } elsif ($version =~ /XHTML 1\.0<\/a> /) { + } elsif ($File->{Version} =~ /XHTML 1\.0<\/a> /) { $image_uri = "http://www.w3.org/Icons/valid-xhtml10"; $alttext = "Valid XHTML 1.0!"; $gifborder = ""; $gifhw = ' height="31" width="88"'; $xhtmlendtag = " /"; -# } elsif ($version =~ /XHTML Basic 1.0/) { -# $image_uri = "${abs_svc_uri}/images/vxhtml-basic10"; -# $alttext = "Valid XHTML Basic 1.0!"; -# $gifborder = ""; -# $gifhw = ' height="31" width="88"'; -# $xhtmlendtag = " /"; - } elsif ($version =~ /XHTML 1.1/) { + } elsif ($File->{Version} =~ /XHTML Basic 1.0/) { + $image_uri = "$CFG->{'Home Page'}/images/vxhtml-basic10"; + $alttext = "Valid XHTML Basic 1.0!"; + $gifborder = ""; + $gifhw = ' height="31" width="88"'; + $xhtmlendtag = " /"; + } elsif ($File->{Version} =~ /XHTML 1.1/) { $image_uri = "http://www.w3.org/Icons/valid-xhtml11"; $alttext = "Valid XHTML 1.1!"; $gifborder = ""; $gifhw = ' height="31" width="88"'; $xhtmlendtag = " /"; - } elsif ($version =~ /HTML 3\.0/) { - $image_uri = "${abs_svc_uri}images/vh30"; + } elsif ($File->{Version} =~ /HTML 3\.0/) { + $image_uri = "$CFG->{'Home Page'}images/vh30"; $alttext = "Valid HTML 3.0!"; - } elsif ($version =~ /Netscape/) { - $image_uri = "${abs_svc_uri}images/vhns"; + } elsif ($File->{Version} =~ /Netscape/) { + $image_uri = "$CFG->{'Home Page'}images/vhns"; $alttext = "Valid Netscape-HTML!"; - } elsif ($version =~ /Hotjava/) { - $image_uri = "${abs_svc_uri}images/vhhj"; + } elsif ($File->{Version} =~ /Hotjava/) { + $image_uri = "$CFG->{'Home Page'}images/vhhj"; $alttext = "Valid Hotjava-HTML!"; + } elsif ($File->{Version} =~ /ISO\/IEC 15445:2000/) { + $image_uri = "$CFG->{'Home Page'}images/v15445"; + $alttext = "Valid ISO-HTML!"; } if (defined $image_uri) { - print <<"EOHD"; - <p> - <img src="$image_uri" alt="$alttext"> Congratulations, this - document validates as $version! - </p> + print qq( <h2 id="skip" class="valid"><img src="$image_uri" + alt="$alttext"$gifhw /> + This Page Is Valid $File->{Version}!</h2>\n); + } elsif ($File->{Version}) { + print qq(<h2 id="skip" class="valid">This Page Is Valid $File->{Version}!</h2>\n); + } else { + print qq(<h2 id="skip" class="valid">This Page Is Valid!</h2>\n); + } - <p> - To show your readers that you have taken the care to create an - interoperable Web page, you may display this icon on any page - that validates. Here is the HTML you could use to add this icon - to your Web page: - </p> - <pre> - <p> - <a href="${abs_svc_uri}check/referer"><img$gifborder - src="$image_uri" - alt="$alttext"$gifhw$xhtmlendtag></a> - </p></pre> - <p> - If you like, you can download a copy of this image (in <a - href="${image_uri}.png">PNG</a> or <a href="${image_uri}.gif">GIF</a> - format) to keep in your local web directory, and change the HTML fragment - above to reference your local image rather than the one on this server. - </p> + print &daily_tip($File, $CFG->{'Tips DB'}); + &print_warnings($File); -EOHD + print <<".EOF."; + <p> + The document located at + <code><URL:<a href="$File->{URI}">$File->{URI}</a>></code> + was checked and found to be valid $File->{Version}. This means that + the resource in question identified itself as + “$File->{Version}” and that we successfully performed a + formal validation using an SGML or XML Parser (depending on the + markup language used). + </p> +.EOF. + if (defined $image_uri) { + print <<".EOF."; + <p> + To show your readers that you have taken the care to create an + interoperable Web page, you may display this icon on any page + that validates. Here is the HTML you could use to add this icon + to your Web page: + </p> + <code> + <p> + <a href="$CFG->{'Home Page'}check/referer"><img$gifborder + src="$image_uri" + alt="$alttext"$gifhw$xhtmlendtag></a> + </p> + </code> + <p> + If you like, you can download a copy of this image (in <a + href="${image_uri}.png">PNG</a> or <a href="${image_uri}.gif">GIF</a> + format) to keep in your local web directory, and change the HTML fragment + above to reference your local image rather than the one on this server. + </p> +.EOF. } - } - if ($File->{Type} eq 'xml' and not $File->{DOCTYPE}) { - print " <p>Congratulations, this document is well-formed XML.</p>\n"; + } elsif (&is_xml($File->{Type}) and not $File->{DOCTYPE}) { + print qq( <h2 class="valid">This document is well-formed XML.</h2>\n); } elsif (defined $File->{Tentative}) { + print qq(<h2 class="valid">This Page Is Valid $File->{Version}!</h2>); if ($File->{Tentative} == T_CHARSET_KLUDGE) { - print " <p>\n This document would validate as the document type specified if you updated it to specify the Character Encoding used.\n </p>\n"; + print &daily_tip($File, $CFG->{'Tips DB'}); + &print_warnings($File); + print " + <p> + This document would validate as $File->{Version} if you updated it to + specify the Character Encoding used. + </p>\n"; } else { - print " <p>\n This document would validate as the document type specified if you updated it to match the Options used.\n </p>\n"; + print &daily_tip($File, $CFG->{'Tips DB'}); + &print_warnings($File); + print " + <p> + This document would validate as $File->{Version} if you updated it to + match the Options used. + </p>\n"; } - } elsif ($version eq 'unknown' or not defined $image_uri) { - print " <p>\n Congratulations, this document validates as the document type specified! (I don't have an icon for this one yet, sorry.)\n </p>\n"; + } else { + print qq( <h2 class="valid">This document validates as the document type specified!</h2>\n); + print <<".EOF."; + <p> + The document located at + <URL:<a href="$File->{URI}">$File->{URI}</a>> was checked and found + to be valid $File->{Version}. This means that the resource in question + identified itself as “$File->{Version}” and that we + successfully performed a formal validation using an SGML or XML Parser + (depending on the markup language used). + </p> +.EOF. } - unless ($q->param('uploaded_file')) { - my $thispage = $q->url(-query => 0); + unless ($File->{'Is Upload'}) { + my $thispage = $File->{Env}->{'Self URI'}; $thispage .= qq(?uri=$File->{URI}); - $thispage .= ';ss=1' if $q->param('ss'); - $thispage .= ';sp=1' if $q->param('sp'); - $thispage .= ';noatt=1' if $q->param('noatt'); - $thispage .= ';outline=1' if $q->param('outline'); + $thispage .= ';ss=1' if $File->{Opt}->{'Show Source'}; + $thispage .= ';sp=1' if $File->{Opt}->{'Show Parsetree'}; + $thispage .= ';noatt=1' if $File->{Opt}->{'No Attributes'}; + $thispage .= ';outline=1' if $File->{Opt}->{'Outline'}; - &output_css_validator_blurb($q->param('uri')); + &output_css_validator_blurb($File->{URI}); print <<"EOHD"; <p> If you would like to create a link to <em>this</em> page (i.e., this validation result) to make it easier to re-validate this page in the - future or to allow others to validate your page, the URI is: - </p> - - <blockquote> - <code><a href="$thispage">$thispage</a></code> - </blockquote> - - <p> - (Or, you can just add the current page to your bookmarks or hotlist.) - </p> + future or to allow others to validate your page, the URI is + <a href="$thispage">$thispage</a> (or you can just add the current page to + your bookmarks or hotlist.)</p> EOHD } - if ($File->{Type} eq 'xml' or $File->{Type} eq 'xhtml') { - print qq{ <h2><a name="sp-lim">Caveat</a></h2> - <p> - This validator is based on SP, which has <a - href="http://www.jclark.com/sp/xml.htm">some limitations - in its support for XML</a>. - </p> - }; - } -} - - -# -# Legacy support. Print blurb to clarify status of weblint support. -sub weblint { - print <<"EOF"; - <div class="mtb"> - <hr> - <h2><a name="weblint">Weblint Doesnt Live Here Any More</a></h2> - <p> - <a href="http://www.weblint.org/">Weblint</a> is no longer actively - maintained and has become badly out of date with the current state - of the web, and so this feature has been deprecated. - </p> - <p> - If you want to get the Weblint results you can use one of the web - frontends referenced from the - <a href="http://www.weblint.org/">Weblint</a> home page or install - a copy of it locally. - </p> - <p> - We are currently investigating alternative methods to replace the - Weblint feature in the Validator. - <a href="http://www.w3.org/People/Raggett/tidy/">Tidy</a> appears - to be a likely candidate at this point. - </p> - </div> -EOF } @@ -1704,8 +1655,7 @@ sub outline { print <<'EOF'; <div id="outline" class="mtb"> - <hr> - <h2><a name="outline">Outline</a></h2> + <h2>Outline</h2> <p> Below is an outline for this document, automatically generated from the heading tags (<code><H1></code> through <code><H6></code>.) @@ -1725,7 +1675,7 @@ EOF print " </ul>\n" x ($prevlevel - $level); # perl is so cool. if ($level - $prevlevel == 1) {print " <ul>\n"}; foreach my $i (($prevlevel + 1) .. ($level - 1)) { - print qq( <ul>\n <li class="warning">A level $i heading is missing!\n); + print qq( <ul>\n <li class="warning">A level $i heading is missing!</li>\n); } if ($level - $prevlevel > 1) {print " <ul>\n"}; @@ -1749,7 +1699,7 @@ EOF $heading = substr($heading, 1); # chop the leading '-' or ' '. $heading = &ent($heading); - print " <li>$heading\n"; + print " <li>$heading</li>\n"; } print " </ul>\n" x $level; print <<'EOF'; @@ -1772,8 +1722,7 @@ sub show_source { print <<'EOF'; <div id="source" class="mtb"> - <hr> - <h2><a name="source">Source Listing</a></h2> + <h2>Source Listing</h2> <p>Below is the source input I used for this validation:</p> <pre> @@ -1794,10 +1743,9 @@ sub parse_tree { print <<'EOF'; <div id="parse" class="mtb"> - <hr> - <h2><a name="parse">Parse Tree</a></h2> + <h2>Parse Tree</h2> EOF - if ($q->param('noatt')) { + if ($File->{Opt}->{'No Attributes'}) { print <<'EOF'; <p class="note"> I am excluding the attributes, as you requested. @@ -1807,7 +1755,7 @@ EOF print <<'EOF'; <p class="note"> You can also view this parse tree without attributes by selecting the - appropriate option on <a href="./#byURI">the form</a>. + appropriate option on <a href="./#form">the form</a>. </p> EOF } @@ -1817,7 +1765,7 @@ EOF print "<pre>\n"; foreach my $line (@{$File->{ESIS}}) { - if ($q->param('noatt')) { # don't show attributes + if ($File->{Opt}->{'No Attributes'}) { # don't show attributes next if $line =~ /^A/; next if $line =~ /^\(A$/; next if $line =~ /^\)A$/; @@ -1851,7 +1799,7 @@ EOF { my $close = ''; $close = "/" if $1 eq ")"; # ")" -> close-tag "<" . $close . "<a href=\"" . - $element_ref . $element_uri->{lc($2)} . + $CFG->{'Element Ref URI'} . $CFG->{'Element Map'}->{lc($2)} . "\">$2<\/a>>" }egx; $printme =~ s,^A, A,; # indent attributes a bit @@ -1875,12 +1823,12 @@ sub preparse { ($File->{Root}, $File->{DOCTYPE}) = shift =~ m(<!DOCTYPE\s+(\w+)\s+PUBLIC\s+(?:[\'\"])([^\"\']+)(?:[\"\']).*>)si; }; my $pi = sub { - return if $File->{XML_Charset}; + return if $File->{Charset}->{XML}; my $pi = shift; return unless $pi =~ m(<\?xml); $pi =~ m(<\?xml[^>]*\sencoding\s*=\s*([\"\'])([A-Za-z][-A-Za-z0-9._]*)\1)s; - warn qq("$1" - "$2"\n); - $File->{XML_Charset} = lc $2; + warn qq('$1' - '$2'\n) if $DEBUG; + $File->{Charset}->{XML} = lc $2; }; my $start = sub { my $tag = shift; @@ -1891,7 +1839,7 @@ sub preparse { if (lc $tag eq 'meta') { if (lc $attr{'http-equiv'} eq 'content-type') { if ($attr{content} =~ m(charset\s*=[\s\"\']*([^\s;\"\'>]*))si) { - $File->{META_Charset} = lc $1; + $File->{Charset}->{META} = lc $1; } } } @@ -1911,6 +1859,8 @@ sub preparse { $p->handler(start => $start, 'tag,attr'); $p->parse(join "\n", @{$File->{Content}}); + $File->{DOCTYPE} = '' unless defined $File->{DOCTYPE}; + return $File; } @@ -1919,7 +1869,7 @@ sub preparse { sub show_esis ($) { print <<'EOF'; <div id="raw_esis" class="mtb"> - <hr> + <hr /> <h2><a name="raw_esis">Raw ESIS Output</a></h2> <pre> EOF @@ -1936,7 +1886,7 @@ EOF sub show_errors ($) { print <<'EOF'; <div id="raw_errors" class="mtb"> - <hr> + <hr /> <h2><a name="raw_errors">Raw Error Output</a></h2> <pre> EOF @@ -1944,10 +1894,88 @@ EOF print " </pre>\n </div>"; } + +# +# Preprocess CGI parameters. +sub prepCGI { + my $File = shift; + my $q = shift; + + # Avoid CGI.pm's "exists but undef" behaviour. + if (scalar $q->param) { + foreach my $param ($q->param) { + next if $param eq 'uploaded_file'; # 'uploaded_file' contains data. + $q->param($param, TRUE) unless $q->param($param); + } + } + + # Futz the URI so "/referer" works. + $q->param('uri', 'referer') if $q->path_info eq '/referer'; + + # Issue a redirect for uri=referer. + if ($q->param('uri') and $q->param('uri') eq 'referer') { + print $q->redirect($q->url() . '?uri=' . uri_escape($q->referer)); + exit; + } + + # Use "url" unless a "uri" was also given. + $q->param('uri', $q->param('url')) if $q->param('url') and not $q->param('uri'); + + # Supersede URI with an uploaded file. + if ($q->param('uploaded_file')) { + $q->param('uri', 'upload://' . $q->param('uploaded_file')); + $File->{'Is Upload'} = TRUE; # Tag it for later use. + } + + # Supersede URI with an uploaded fragment. + if ($q->param('fragment')) {$q->param('uri', 'upload://Form Submission')}; + + # Munge the URI to include commonly omitted prefix. + $q->param('uri', 'http://' . $q->param('uri')) if $q->param('uri') =~ m(^www)i; + + # + # Flag an error if we didn't get a file to validate. + unless ($q->param('uri')) { + $File->{'Error Flagged'} = TRUE; + $File->{'Error Message'} = &uri_rejected; + } + + return $q; +} + +# +# Preprocess SSI files. +sub prepSSI { + my $opt = shift; + + my $fh = new IO::File "< $opt->{File}" + or croak "open($opt->{File}) returned: $!\n"; + my $ssi = join '', <$fh>; + close $fh or carp "close($opt->{File}) returned: $!\n"; + + $ssi =~ s/<!--\#echo var="title" -->/$opt->{Title}/g + if defined $opt->{Title}; + + $ssi =~ s/<!--\#echo var="date" -->/$opt->{Date}/g + if defined $opt->{Date}; + + $ssi =~ s/<!--\#echo\s+var="revision"\s+-->/$opt->{Revision}/g + if defined $opt->{Revision}; + + # No need to parametrize this one, it's always "./" in this context. + $ssi =~ s|<!--\#echo\s+var="relroot"\s+-->|./|g; + + return $ssi; +} + + # # Output errors for a rejected URI. sub uri_rejected { - my $scheme = shift->scheme() || 'undefined'; + my $scheme = shift || 'undefined'; + unless ($scheme == 'undefined') { + $scheme = $scheme->scheme(); + } return <<".EOF."; <div class="error"> @@ -1961,7 +1989,7 @@ sub uri_rejected { <p> If you entered a valid URI using a scheme that we should support, please let us know as outlined on our - <a href="/feedback.html">Feedback page</a>. Make sure to include the + <a href="feedback.html">Feedback page</a>. Make sure to include the specific URI you would like us to support, and if possible provide a reference to the relevant standards document describing the URI scheme in question. @@ -1969,3 +1997,522 @@ sub uri_rejected { </div> .EOF. } + + +# +# Utility subs to tell if type "is" something. +sub is_xml {shift =~ m(^[^+]+\+xml$)}; +sub is_svg {shift =~ m(^svg)}; +sub is_smil {shift =~ m(^smil)}; +sub is_html {shift =~ m(^html$)}; +sub is_xhtml {shift =~ m(^xhtml)}; +sub is_mathml {shift =~ m(^mathml)}; + + +# +# Sanity check charset info and add any warnings necessary. +sub validate_charset { + my $File = shift; + # + # Handle the case where there was no charset to be found. + # (This is a different issue from whether an override was given!) + unless ($File->{Charset}->{Use}) { + if (&is_xml($File->{Type})) { + $File->{Charset}->{Use} = 'UTF-8'; # @@@TODO@@@: Should detect UTF-8 vs. UTF-16! + &add_warning($File, <<" .EOF."); + <strong>No Character Encoding detected!</strong> + To ensure correct validation, processing, and display, + it is important that the character encoding is properly + labeled. + <a href="http://www.w3.org/International/O-charset.html">More + information...</a> + .EOF. + $File->{Tentative} |= T_CHARSET_KLUDGE; # Would be T_WARN, but the complaints... + } else { + $File->{Charset}->{Use} = 'UTF-8'; # @@@FIXME@@@: This needs thought! + &add_warning($File, <<" .EOF."); + <strong>No Character Encoding detected!</strong> + To ensure correct validation, processing, and display, + it is important that the character encoding is properly + labeled. + <a href="http://www.w3.org/International/O-charset.html">More + information...</a> + .EOF. + $File->{Tentative} |= T_CHARSET_KLUDGE; # Would be T_WARN, but the complaints... + } + } + + # + # If we have a charset field in the request, we use it + if ($File->{Opt}->{Charset}) { + if ($File->{Opt}->{Charset} =~ m(detect automatically)i) { + $File->{Opt}->{Charset} = ''; + } else { + $File->{Opt}->{Charset} =~ /^(\w+)/; + $File->{Opt}->{Charset} = lc $1; + + &add_warning($File, <<" .EOF."); + <strong>Character Encoding Override in effect!</strong> + The detected character encoding, + «<code>$File->{Charset}->{Use}</code>», has been supressed and the + character encoding «<code>$File->{Opt}->{Charset}</code>» + used instead. + .EOF. + $File->{Tentative} |= T_ERROR; + $File->{Charset}->{Use} = $File->{Opt}->{Charset}; + } + } + + # + # Add a warning if there was charset info in the HTTP header, but it was + # later overridden by a META element or XML Declaration. + if ($File->{Charset}->{HTTP}) { + if ($File->{Charset}->{META}) { + unless ($File->{Charset}->{META} eq $File->{Charset}->{HTTP}) { + &add_warning($File, <<" .EOF."); + <strong>Character Encoding mismatch!</strong> + The character encoding specified in the HTTP header, + «<code>$File->{Charset}->{HTTP}</code>», is different from the + value «<code>$File->{Charset}->{META}</code>» in the META element. + I will use «<code>$File->{Charset}->{Use}</code>» for this validation. + .EOF. + } + } elsif ($File->{Charset}->{XML}) { + unless ($File->{Charset}->{XML} eq $File->{Charset}->{HTTP}) { + &add_warning($File, <<" .EOF."); + <strong>Character Encoding mismatch!</strong> + The character encoding specified in the HTTP header + («<code>$File->{Charset}->{HTTP}</code>») is different from the + value in the XML declaration («<code>$File->{Charset}->{XML}</code>»). + I will use the value from the XML Declaration + («<code>$File->{Charset}->{Use}</code>») + for this validation. + .EOF. + } + } + } + + return $File; +} + + +# +# Check Encoding and Transliterate. +sub validate_encoding { + my $File = shift; + + my @lines; + + unless ($File->{Charset}->{Use} =~ m(utf-8)i) { + my ($command, $result_charset) = split " ", $CFG->{Charsets}->{$File->{Charset}->{Use}}, 2; + + if ($command eq 'I') { + eval {my $c = Text::Iconv->new($result_charset, 'utf-8')}; + $command = '' if $@; + } elsif ($command eq 'X') { + $@ = "$File->{Charset}->{Use} undefined; replace by $result_charset"; + } + + if ($command ne 'I') { + $File->{'Error Flagged'} = TRUE; + $File->{'Error Message'} = <<" .EOF."; + <p>Sorry! + A fatal error occurred when attempting to transcode the character encoding + of the document. Either we do not support this character encoding yet, or you + have specified a non-existent character encoding (often a misspelling). + </p> + <p>The detected character encoding was "$File->{Charset}->{Use}".</p> + <p>The error was "$@".</p> + <p>The command was "$command".</p> + <p> + If you believe the character encoding to be valid you can submit a request for + that character encoding (see the <a href="feedback.html">feedback page</a> + for details) and we will look into supporting it in the future. + </p> + .EOF. + return $File; + } + + my $c = Text::Iconv->new($result_charset, 'utf-8'); + my $line = 0; + for (@{$File->{Content}}) { + my $in = $_; + $line++; + $_ = $c->convert($_); # $_ is local!! + push @lines, $line if ($in ne "" and $_ eq ""); + } + } + + # check correctness of UTF-8 both for UTF-8 input and for conversion results + if ($File->{Charset}->{Use}) { + for (my $i = 0; $i < $#{$File->{Content}}; $i++) { + # substitution needed for very long lines (>32K), to avoid backtrack + # stack overflow. Handily, this also happens to count characters. + local $_ = $File->{Content}->[$i]; + my $count = + s/ [\x00-\x7F] # ASCII + | [\xC2-\xDF] [\x80-\xBF] # non-overlong 2-byte sequences + | \xE0[\xA0-\xBF] [\x80-\xBF] # excluding overlongs + | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte sequences + | \xED[\x80-\x9F] [\x80-\xBF] # excluding surrogates + | \xF0[\x90-\xBF] [\x80-\xBF]{2} # planes 1-3 + | [\xF1-\xF3] [\x80-\xBF]{3} # planes 4-15 + | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 + //xg; + push @lines, ($i+1) if length; + $count += 0; # Force numeric. + $File->{Offsets}->[$i + 1] = [$count, $File->{Offsets}->[$i]->[1] + $count]; + } + } + + if (scalar @lines) { + $File->{'Error Flagged'} = TRUE; + my $s = $#lines ? 's' : ''; + my $lines = new Set::IntSpan \@lines; + $lines = join ', ', split ',', $lines->run_list; + $File->{'Error Message'} = <<" .EOF."; + <p class="error"> + Sorry, I am unable to validate this document because on line$s + <strong>$lines</strong> it contained + one or more bytes that I cannot interpret as + <code>$File->{Charset}->{Use}</code> (in other words, the bytes + found are not valid values in the specified Character Encoding). + Please check both the content of the file and the character + encoding indication. + </p> + .EOF. + return $File; + } + return $File; +} + + +# +# Transcode into UTF-8. +sub transcode { + my $File = shift; + my $from = shift; + + my @Result = (); + my @lines = (); + + eval {my $c = Text::Iconv->new($from, 'utf-8')}; + if ($@) { + return FALSE; + } else { + my $c = Text::Iconv->new($from, 'utf-8'); + my $line = 0; + foreach my $in (@{$File->{Content}}) { + $line++; + my $out = $c->convert($in); + push @lines, $line if ($in and not $out); + push @Result, $out; + } + } + return {Data => \@Result, Lines => \@lines}; +} + + +# +# Return an XML report for the page. +sub report_xml { + my $File = shift; + + my $valid = ($File->{'Is Valid'} ? 'Valid' : 'Invalid'); + my $errs = ($File->{'Is Valid'} ? '0' : scalar @{$File->{Errors}}); + + print <<".EOF."; +Content-Type: application/xml; charset=UTF-8 +X-W3C-Validator-Status: $valid +X-W3C-Validator-Errors: $errs + +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type="text/css" href="xml-results.css"?> + +<results> + <meta> + <uri>$File->{URI}</uri> + <modified>$File->{Modified}</modified> + <server>$File->{Server}</server> + <size>$File->{Size}</size> + <encoding>$File->{Charset}->{Use}</encoding> + <doctype>$File->{DOCTYPE}</doctype> + </meta> + <warnings> +.EOF. + print qq(<warning>$_</warning>) for @{$File->{Warnings}}; + print " </warnings>\n <messages>\n"; + + foreach my $err (@{$File->{Errors}}) { + # Strip curlies from lq-nsgmls output. + $err->{msg} =~ s/[{}]//g; + chomp $err->{msg}; + + # Find index into the %frag hash for the "explanation..." links. + $err->{idx} = $err->{msg}; + $err->{idx} =~ s/"[^\"]*"/FOO/g; + $err->{idx} =~ s/[^A-Za-z ]//g; + $err->{idx} =~ s/\s+/ /g; # Collapse spaces + $err->{idx} =~ s/(^\s|\s$)//g; # Remove leading and trailing spaces. + $err->{idx} =~ s/(FOO )+/FOO /g; # Collapse FOOs. + $err->{idx} =~ s/FOO FOO/FOO/g; # Collapse FOOs. + + my @offsets = ( + $File->{Offsets}->[$err->{line} ]->[0], + $File->{Offsets}->[$err->{line} - 1]->[1], + $File->{Offsets}->[$err->{line} - 1]->[1] + $err->{char} + $err->{line} + ); + print <<".EOF."; + <error><line>$err->{line}</line><column>$err->{char}</column><offset>@offsets</offset><msg>$err->{msg}</msg></error> +.EOF. + } + print <<".EOF."; + </messages> +</results> +.EOF. +} + + + +# +# Return an XML report for the page. +sub report_earl { + my $File = shift; + + my $valid = ($File->{'Is Valid'} ? 'Valid' : 'Invalid'); + my $errs = ($File->{'Is Valid'} ? '0' : scalar @{$File->{Errors}}); + + print <<".EOF."; +Content-Type: application/xml; charset=UTF-8 +X-W3C-Validator-Status: $valid +X-W3C-Validator-Errors: $errs + +<?xml version="1.0" encoding="UTF-8"?> +<rdf:RDF + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2001/03/earl/1.0-test#" + xmlns:val="http://validator.w3.org/this_will_change/do_not_rely_on_it!"> + + <Assertor rdf:about="http://validator.w3.org/"> + <name>W3 Validator</name> + +.EOF. + + unless ($File->{'Is Valid'}) { + foreach my $err (@{$File->{Errors}}) { + # Strip curlies from lq-nsgmls output. + $err->{msg} =~ s/[{}]//g; + chomp $err->{msg}; + + # Find index into the %frag hash for the "explanation..." links. + $err->{idx} = $err->{msg}; + $err->{idx} =~ s/"[^\"]*"/FOO/g; + $err->{idx} =~ s/[^A-Za-z ]//g; + $err->{idx} =~ s/\s+/ /g; # Collapse spaces + $err->{idx} =~ s/(^\s|\s\Z)//g; # Remove leading and trailing spaces. + $err->{idx} =~ s/(FOO )+/FOO /g; # Collapse FOOs. + $err->{idx} =~ s/FOO FOO/FOO/g; # Collapse FOOs. + + my @offsets = ( + $File->{Offsets}->[$err->{line} ]->[0], + $File->{Offsets}->[$err->{line} - 1]->[1], + $File->{Offsets}->[$err->{line} - 1]->[1] + $err->{char} + $err->{line} + ); + print <<".EOF."; + <asserts rdf:parseType="Resource"> + <rdf:subject rdf:parseType="Resource"> + <testSubject rdf:resource="$File->{URI}" /> + <val:line>$err->{line}</val:line> + <val:column>$err->{char}</val:column> + <val:offset>@offsets</val:offset> + </rdf:subject> + <rdf:predicate rdf:resource="http://www.w3.org/2001/03/earl/1.00#fails" /> + <rdf:object rdf:parseType="Resource"> + <testCriteria rdf:parseType="Resource"><id rdf:resource="http://www.w3.org/HTML/" /></testCriteria> + <note>$err->{msg}</note> + </rdf:object> + <testMode rdf:resource="http://www.w3.org/2001/03/earl/1.00#Auto" /> + </asserts> +.EOF. + } + } else { + print <<".EOF."; + <asserts rdf:parseType="Resource"> + <rdf:subject rdf:parseType="Resource"><testSubject rdf:resource="$File->{URI}" /></rdf:subject> + <rdf:predicate rdf:resource="http://www.w3.org/2001/03/earl/1.00#passes" /> + <rdf:object rdf:parseType="Resource"> + <testCriteria rdf:parseType="Resource"><id rdf:resource="http://www.w3.org/HTML/" /></testCriteria> + <note>Valid!</note> + </rdf:object> + <testMode rdf:resource="http://www.w3.org/2001/03/earl/1.00#Auto" /> + </asserts> +.EOF. + } + + print <<".EOF."; + </Assertor> +</rdf:RDF> +.EOF. +} + + + +# +# Return an XML report for the page. +sub report_n3 { + my $File = shift; + + my $valid = ($File->{'Is Valid'} ? 'Valid' : 'Invalid'); + my $errs = ($File->{'Is Valid'} ? '0' : scalar @{$File->{Errors}}); + + print <<".EOF."; +Content-Type: text/plain; charset=UTF-8 +X-W3C-Validator-Status: $valid +X-W3C-Validator-Errors: $errs + +\@prefix earl: <http://www.w3.org/2001/03/earl/1.0-test#> . +\@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +\@prefix val: <http://validator.w3.org/this_will_change/do_not_rely_on_it!> . + +<http://validator.w3.org/> a earl:Assertor; + earl:name "W3 Validator"; + earl:asserts +.EOF. + + unless ($File->{'Is Valid'}) { + for (my $i = 0; $i <= scalar @{$File->{Errors}}; $i++) { + my $err = $File->{Errors}->[$i]; + # Strip curlies from lq-nsgmls output. + $err->{msg} =~ s/[{}]//g; + chomp $err->{msg}; + + # Find index into the %frag hash for the "explanation..." links. + $err->{idx} = $err->{msg}; + $err->{idx} =~ s/"[^\"]*"/FOO/g; + $err->{idx} =~ s/[^A-Za-z ]//g; + $err->{idx} =~ s/\s+/ /g; # Collapse spaces + $err->{idx} =~ s/(^\s|\s\Z)//g; # Remove leading and trailing spaces. + $err->{idx} =~ s/(FOO )+/FOO /g; # Collapse FOOs. + $err->{idx} =~ s/FOO FOO/FOO/g; # Collapse FOOs. + + my @offsets = ( + $File->{Offsets}->[$err->{line} ]->[0], + $File->{Offsets}->[$err->{line} - 1]->[1], + $File->{Offsets}->[$err->{line} - 1]->[1] + $err->{char} + $err->{line} + ); + print <<".EOF."; + [ + earl:testMode earl:Auto; + rdf:predicate earl:fails; + rdf:subject [ + val:column "$err->{char}"; + val:line "$err->{line}"; + val:offset "@offsets"; + earl:testSubject <$File->{URI}> + ]; + rdf:object [ + earl:id <http://www.w3.org/HTML/>; + earl:note """$err->{msg} """ + ] +.EOF. + + if ($i == scalar @{$File->{Errors}}) { + print " ]\n"; + } else { + print " ],\n"; + } + } + } else { + print <<".EOF."; + [ + earl:testMode earl:Auto; + rdf:predicate earl:passes; + rdf:subject [earl:testSubject <$File->{URI}>]; + rdf:object [ + earl:id <http://www.w3.org/HTML/>; + earl:note "Valid" + ] + ] +.EOF. + } + print " .\n"; +} + + +# +# Find the encoding in use in a document instance. +# +# Implements the autodetection algorithm from Appendix F of the +# XML 1.0 Reccomendation. +# <URL:http://www.w3.org/TR/2000/REC-xml-20001006#sec-guessing> +sub find_encoding { + my $File = shift; + # + # With a Byte Order Mark: + return 'UCS-4BE' if $File->{Content}[0] =~ m/^\x00\x00\xFE\xFF/; # UCS-4, big-endian machine (1234 order). + return 'UCS-4LE' if $File->{Content}[0] =~ m/^\xFF\xFE\x00\x00/; # UCS-4, little-endian machine (4321 order). + return 'UCS-4' if $File->{Content}[0] =~ m/^\x00\x00\xFF\xFE/; # UCS-4, unusual octet order (2143 order). + return 'UCS-4' if $File->{Content}[0] =~ m/^\xFE\xFF\x00\x00/; # UCS-4, unusual octet order (3412 order). + return 'UTF-16BE' if $File->{Content}[0] =~ m/^\xFE\xFF/; # UTF-16, big-endian. + return 'UTF-16LE' if $File->{Content}[0] =~ m/^\xFF\xFE/; # UTF-16, little-endian. + return 'UTF-8' if $File->{Content}[0] =~ m/^\xEF\xBB\xBF/; # UTF-8. + + # + # Without a Byte Order Mark: + if ($File->{Content}[0] =~ m/^\x00\x00\x00\x3C/) { # UCS-4 or 32bit; big-endian machine (1234 order). + return 'UCS-4BE'; # Assume UCS-4 + } elsif ($File->{Content}[0] =~ m/^\x3C\x00\x00\x00/) { # UCS-4 or 32bit; little-endian machine (4321 order). + return 'UCS-4BE'; # Assume UCS-4 + } elsif ($File->{Content}[0] =~ m/^\x00\x00\x3C\x00/) { # UCS-4 or 32bit; unusual octet order (2143). + return 'UCS-4BE'; # Assume UCS-4 + } elsif ($File->{Content}[0] =~ m/^\x00\x3C\x00\x00/) { # UCS-4 or 32bit; unusual octet order (3412). + return 'UCS-4BE'; # Assume UCS-4 + } elsif ($File->{Content}[0] =~ m/^\x00\x3C\x00\x3F/) { # UCS-2, UTF-16, or 16bit; big-endian. + return 'UTF-16BE'; # Assume UTF-16BE. + } elsif ($File->{Content}[0] =~ m/^\x3C\x00\x3F\x00/) { # UCS-2, UTF-16, or 16bit; little-endian. + return 'UTF-16LE'; # Assume UTF-16LE. + } elsif ($File->{Content}[0] =~ m/^\x3C\x3F\x78\x6D/) { # UTF-8, ISO-646, ASCII, ISO-8859-*, Shift-JIS, EUC, etc. + return 'UTF-8'; + } elsif ($File->{Content}[0] =~ m/^\x4C\x6F\xA7\x94/) { # EBCDIC + return 'EBCDIC'; + } +} + + +sub parse_xml_decl { + my $f = shift; + my $e = ''; + my $p = HTML::Parser->new(api_version => 3); + + my $pi = sub { + return if $e; + my $pi = shift; + return unless $pi =~ m(<\?xml); + $pi =~ m(<\?xml[^>]*\sencoding\s*=\s*([\"\'])([A-Za-z][-A-Za-z0-9._]*)\1)s; + warn qq(\$1 == '$1' and \$2 == '$2'\n) if $DEBUG; + $e = lc $2 if $2; + warn "\$e inside == $e\n"; + $p->eof() if $e; + }; + + $p->xml_mode(TRUE); + $p->handler(process => $pi, 'text'); + $p->parse($f->{Content}); + warn "$e\n" if $DEBUG; + return $e; +} + + +# +# Abort with a message if an error was flagged at point. +sub abort_if_error_flagged { + my $File = shift; + if ($File->{'Error Flagged'}) { + print $File->{'Results'}; + print $File->{'Error Message'}; + print $File->{'Footer'}; + undef $File; + exit; + } +} + diff --git a/httpd/cgi-bin/checklink.pl b/httpd/cgi-bin/checklink.pl index 0bbfa50..d0d1e62 100755 --- a/httpd/cgi-bin/checklink.pl +++ b/httpd/cgi-bin/checklink.pl @@ -5,7 +5,7 @@ # (c) 1999-2002 World Wide Web Consortium # based on Renaud Bruyeron's checklink.pl # -# $Id: checklink.pl,v 2.90 2002-06-21 20:29:15 eric Exp $ +# $Id: checklink.pl,v 2.91 2002-08-20 01:51:31 link Exp $ # # This program is licensed under the W3C(r) License: # http://www.w3.org/Consortium/Legal/copyright-software @@ -38,7 +38,7 @@ $| = 1; # Version info my $PROGRAM = 'W3C checklink'; -my $VERSION = q$Revision: 2.90 $ . '(c) 1999-2002 W3C'; +my $VERSION = q$Revision: 2.91 $ . '(c) 1999-2002 W3C'; my $REVISION; ($REVISION = $VERSION) =~ s/Revision: (\d+\.\d+) .*/$1/; # Different options specified by the user @@ -401,7 +401,7 @@ sub check_uri() { printf("<p>Go to <a href='#%s'>the results</a>.</p>\n", $result_anchor); printf("<p>Check also: -<a href=\"http://validator.w3.org/check?uri=%s\">HTML Validity</a> & +<a href=\"check?uri=%s\">HTML Validity</a> & <a href=\"http://jigsaw.w3.org/css-validator/validator?uri=%s\">CSS Validity</a></p> <p>Back to the <a href=\"checklink\">link checker</a>.</p>\n", |