aboutsummaryrefslogtreecommitdiffstats
path: root/src/resources/entities
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources/entities')
-rwxr-xr-xsrc/resources/entities/CatalogManager.properties50
-rwxr-xr-xsrc/resources/entities/ISOdia.pen34
-rwxr-xr-xsrc/resources/entities/ISOgrk1.pen74
-rwxr-xr-xsrc/resources/entities/ISOlat1.pen79
-rwxr-xr-xsrc/resources/entities/ISOnum.pen109
-rwxr-xr-xsrc/resources/entities/ISOpub.pen110
-rwxr-xr-xsrc/resources/entities/ISOtech.pen85
-rwxr-xr-xsrc/resources/entities/README5
-rwxr-xr-xsrc/resources/entities/XMLSchema.dtd395
-rwxr-xr-xsrc/resources/entities/book-cocoon-v10.dtd70
-rwxr-xr-xsrc/resources/entities/catalog67
-rwxr-xr-xsrc/resources/entities/catalog-demo/catalog-demo-v10.dtd14
-rw-r--r--src/resources/entities/catalog-demo/override.xml4
-rw-r--r--src/resources/entities/catalog-demo/testpub.xml7
-rw-r--r--src/resources/entities/catalog-demo/testsys.xml5
-rwxr-xr-xsrc/resources/entities/changes-v10.dtd91
-rwxr-xr-xsrc/resources/entities/characters.ent290
-rwxr-xr-xsrc/resources/entities/datatypes.dtd195
-rwxr-xr-xsrc/resources/entities/document-v10.dtd555
-rwxr-xr-xsrc/resources/entities/faq-v10.dtd77
-rwxr-xr-xsrc/resources/entities/javadoc-v04draft.dtd254
-rwxr-xr-xsrc/resources/entities/sitemap-v02.dtd341
-rwxr-xr-xsrc/resources/entities/specification-v10.dtd85
-rwxr-xr-xsrc/resources/entities/svg-cocoon-v11.dtd82
-rwxr-xr-xsrc/resources/entities/svg10.dtd1538
-rwxr-xr-xsrc/resources/entities/todo-v10.dtd90
26 files changed, 4706 insertions, 0 deletions
diff --git a/src/resources/entities/CatalogManager.properties b/src/resources/entities/CatalogManager.properties
new file mode 100755
index 0000000000..5fb94de4af
--- /dev/null
+++ b/src/resources/entities/CatalogManager.properties
@@ -0,0 +1,50 @@
+# CatalogManager.properties
+#
+# This is the default properties file for Apache Cocoon. This facilitates local
+# configuration of application-specific catalogs. You can also use cocoon.xconf
+# to over-ride or supplement these settings.
+#
+# Apache Cocoon will automatically load a default catalog from
+# webapps/cocoon/resources/entities/catalog
+#
+# See the documentation (catalog.html).
+
+# verbosity ... level of messages for status/debug (messages go to STDOUT)
+# The following messages are provided ...
+# 0 = none
+# 1 = ?
+# 2 = 1+, Loading catalog, Resolved public, Resolved system
+# 3 = 2+, Catalog does not exist, resolvePublic, resolveSystem
+# 10 = 3+, List all catalog entries when loading a catalog
+# (Cocoon also logs the "Resolved public" messages.)
+# TODO: determine all messages at each level
+#
+verbosity=1
+
+# catalogs ... list of additional catalogs to load
+# use full pathnames
+# pathname separator is always semi-colon (;) regardless of operating system
+# directory separator is always slash (/) regardless of operating system
+#
+#catalogs=/path/to/local/catalog
+catalogs=
+
+# prefer ... we prefer to use Public Identifiers for entity resolution
+#
+prefer=public
+
+# static-catalog ... see the Sun doco
+# TODO: ? what impact does this setting have for Apache Cocoon
+#
+static-catalog=yes
+
+# allow-oasis-xml-catalog-pi ... see the Sun doco
+# TODO: ? what impact does this setting have for Apache Cocoon
+#
+allow-oasis-xml-catalog-pi=yes
+
+# catalog-class-name ... specify an alternate class name to use
+# Apache Cocoon does not need this setting - we already have a named class
+#
+# catalog-class-name=com.sun.resolver.Resolver
+
diff --git a/src/resources/entities/ISOdia.pen b/src/resources/entities/ISOdia.pen
new file mode 100755
index 0000000000..df5c05d2ed
--- /dev/null
+++ b/src/resources/entities/ISOdia.pen
@@ -0,0 +1,34 @@
+<!-- (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 % ISOdia PUBLIC
+ "ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML">
+ %ISOdia;
+-->
+<!-- This version of the entity set can be used with any SGML document
+ which uses ISO 10646 as its document character set.
+ This includes XML documents and ISO HTML documents.
+ This entity set uses hexadecimal numeric character references.
+
+ Creator: Rick Jelliffe, Allette Systems
+
+ Version: 1997-07-07
+-->
+
+<!ENTITY acute "&#180;" ><!--=acute accent-->
+<!ENTITY breve "&#x2D8;" ><!--=breve-->
+<!ENTITY caron "&#x2C7;" ><!--=caron-->
+<!ENTITY cedil "&#184;" ><!--=cedilla-->
+<!ENTITY circ "^" ><!--=circumflex accent-->
+<!ENTITY dblac "&#x2DD;" ><!--=double acute accent-->
+<!ENTITY die "&#168;" ><!--=dieresis-->
+<!ENTITY dot "&#x2D9;" ><!--=dot above-->
+<!ENTITY grave "`" ><!--=grave accent-->
+<!ENTITY macr "&#175;" ><!--=macron-->
+<!ENTITY ogon "&#x2DB;" ><!--=ogonek-->
+<!ENTITY ring "&#x2DA;" ><!--=ring-->
+<!ENTITY tilde "&#x2DC;" ><!--=tilde-->
+<!ENTITY uml "&#168;" ><!--=umlaut mark-->
diff --git a/src/resources/entities/ISOgrk1.pen b/src/resources/entities/ISOgrk1.pen
new file mode 100755
index 0000000000..cdab380fc3
--- /dev/null
+++ b/src/resources/entities/ISOgrk1.pen
@@ -0,0 +1,74 @@
+<!-- (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.
+
+ Creator: version from ISO 8879:1986
+
+ Version: 0.21 1992-12-04
+-->
+<!-- Character entity set. Typical invocation:
+ <!ENTITY % ISOGRK1 PUBLIC
+ "ISO 9573-15:1993//ENTITIES Greek Letters//EN//XML">
+ %ISOGRK1;
+-->
+<!-- This version of the entity set can be used with any SGML document
+ which uses ISO 10646 as its document character set.
+ This includes XML documents and ISO HTML documents.
+
+ Creator: Rick Jelliffe, from HTMLlat1
+
+ Version: 1997-07-07
+-->
+
+<!ENTITY agr "&#945;" ><!--small alpha, Greek, U03B1 -->
+<!ENTITY Agr "&#913;" ><!--capital Alpha, Greek, U0391 -->
+<!ENTITY bgr "&#946;" ><!--small beta, Greek, U03B2 -->
+<!ENTITY Bgr "&#914;" ><!--capital Beta, Greek, U0392 -->
+<!ENTITY ggr "&#947;" ><!--small gamma, Greek, U03B3 -->
+<!ENTITY Ggr "&#915;" ><!--capital Gamma, Greek, U0393 -->
+<!ENTITY dgr "&#948;" ><!--small delta, Greek, U03B4 -->
+<!ENTITY Dgr "&#916;" ><!--capital Delta, Greek, U0394 -->
+<!ENTITY egr "&#949;" ><!--small epsilon, Greek, U03B5 -->
+<!ENTITY Egr "&#917;" ><!--capital Epsilon, Greek, U0395 -->
+<!ENTITY zgr "&#950;" ><!--small zeta, Greek, U03B6 -->
+<!ENTITY Zgr "&#918;" ><!--capital Zeta, Greek, U0396 -->
+<!ENTITY eegr "&#951;" ><!--small eta, Greek, U03B7 -->
+<!ENTITY EEgr "&#919;" ><!--capital Eta, Greek, U0397 -->
+<!ENTITY thgr "&#952;" ><!--small theta, Greek, U03B8 -->
+<!ENTITY THgr "&#920;" ><!--capital Theta, Greek, U0398 -->
+<!ENTITY igr "&#953;" ><!--small iota, Greek, U03B9 -->
+<!ENTITY Igr "&#921;" ><!--capital Iota, Greek, U0399 -->
+<!ENTITY kgr "&#954;" ><!--small kappa, Greek, U03BA -->
+<!ENTITY Kgr "&#922;" ><!--capital Kappa, Greek, U039A -->
+<!ENTITY lgr "&#955;" ><!--small lambda, Greek, U03BB -->
+<!ENTITY Lgr "&#923;" ><!--capital Lambda, Greek, U039B -->
+<!ENTITY mgr "&#956;" ><!--small mu, Greek, U03BC -->
+<!ENTITY Mgr "&#924;" ><!--capital Mu, Greek, U039C -->
+<!ENTITY ngr "&#957;" ><!--small nu, Greek, U03BD -->
+<!ENTITY Ngr "&#925;" ><!--capital Nu, Greek, U039D -->
+<!ENTITY xgr "&#958;" ><!--small xi, Greek, U03BE -->
+<!ENTITY Xgr "&#926;" ><!--capital Xi, Greek, U039E -->
+<!ENTITY ogr "&#959;" ><!--small omicron, Greek, U03BF -->
+<!ENTITY Ogr "&#927;" ><!--capital Omicron, Greek, U039F -->
+<!ENTITY pgr "&#960;" ><!--small pi, Greek, U03C0 -->
+<!ENTITY Pgr "&#928;" ><!--capital Pi, Greek, U03A0 -->
+<!ENTITY rgr "&#961;" ><!--small rho, Greek, U03C1 -->
+<!ENTITY Rgr "&#929;" ><!--capital Rho, Greek, U03A1 -->
+<!ENTITY sfgr "&#962;" ><!--final small sigma, Greek, U03C2 -->
+<!ENTITY sgr "&#963;" ><!--small sigma, Greek, U03C3 -->
+<!ENTITY Sgr "&#931;" ><!--capital Sigma, Greek, U03A3 -->
+<!ENTITY tgr "&#964;" ><!--small tau, Greek, U03C4 -->
+<!ENTITY Tgr "&#932;" ><!--capital Tau, Greek, U03A4 -->
+<!ENTITY ugr "&#965;" ><!--small upsilon, Greek, U03C5 -->
+<!ENTITY Ugr "&#933;" ><!--capital Upsilon, Greek, U03A5 -->
+<!ENTITY phgr "&#966;" ><!--small phi, Greek, U03C6 -->
+<!ENTITY PHgr "&#934;" ><!--capital Phi, Greek, U03A6 -->
+<!ENTITY khgr "&#967;" ><!--small chi, Greek, U03C7 -->
+<!ENTITY KHgr "&#935;" ><!--capital Chi, Greek, U03A7 -->
+<!ENTITY psgr "&#968;" ><!--small psi, Greek, U03C8 -->
+<!ENTITY PSgr "&#936;" ><!--capital Psi, Greek, U03A8 -->
+<!ENTITY ohgr "&#969;" ><!--small omega, Greek, U03C9 -->
+<!ENTITY OHgr "&#937;" ><!--capital Omega, Greek, U03A9 -->
+
+
diff --git a/src/resources/entities/ISOlat1.pen b/src/resources/entities/ISOlat1.pen
new file mode 100755
index 0000000000..82e5a7a6c9
--- /dev/null
+++ b/src/resources/entities/ISOlat1.pen
@@ -0,0 +1,79 @@
+<!-- (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
+ "ISO 8879-1986//ENTITIES Added Latin 1//EN//XML">
+ %ISOlat1;
+-->
+<!-- This version of the entity set can be used with any SGML document
+ which uses ISO 8859-1 or ISO 10646 as its document character
+ set. This includes XML documents and ISO HTML documents.
+-->
+
+ <!ENTITY Agrave "&#192;" ><!-- capital A, grave accent -->
+ <!ENTITY Aacute "&#193;" ><!-- capital A, acute accent -->
+ <!ENTITY Acirc "&#194;" ><!-- capital A, circumflex accent -->
+ <!ENTITY Atilde "&#195;" ><!-- capital A, tilde -->
+ <!ENTITY Auml "&#196;" ><!-- capital A, dieresis or umlaut mark -->
+ <!ENTITY Aring "&#197;" ><!-- capital A, ring -->
+ <!ENTITY AElig "&#198;" ><!-- capital AE diphthong (ligature) -->
+ <!ENTITY Ccedil "&#199;" ><!-- capital C, cedilla -->
+ <!ENTITY Egrave "&#200;" ><!-- capital E, grave accent -->
+ <!ENTITY Eacute "&#201;" ><!-- capital E, acute accent -->
+ <!ENTITY Ecirc "&#202;" ><!-- capital E, circumflex accent -->
+ <!ENTITY Euml "&#203;" ><!-- capital E, dieresis or umlaut mark -->
+ <!ENTITY Igrave "&#204;" ><!-- capital I, grave accent -->
+ <!ENTITY Iacute "&#205;" ><!-- capital I, acute accent -->
+ <!ENTITY Icirc "&#206;" ><!-- capital I, circumflex accent -->
+ <!ENTITY Iuml "&#207;" ><!-- capital I, dieresis or umlaut mark -->
+ <!ENTITY ETH "&#208;" ><!-- capital Eth, Icelandic -->
+ <!ENTITY Ntilde "&#209;" ><!-- capital N, tilde -->
+ <!ENTITY Ograve "&#210;" ><!-- capital O, grave accent -->
+ <!ENTITY Oacute "&#211;" ><!-- capital O, acute accent -->
+ <!ENTITY Ocirc "&#212;" ><!-- capital O, circumflex accent -->
+ <!ENTITY Otilde "&#213;" ><!-- capital O, tilde -->
+ <!ENTITY Ouml "&#214;" ><!-- capital O, dieresis or umlaut mark -->
+ <!ENTITY Oslash "&#216;" ><!-- capital O, slash -->
+ <!ENTITY Ugrave "&#217;" ><!-- capital U, grave accent -->
+ <!ENTITY Uacute "&#218;" ><!-- capital U, acute accent -->
+ <!ENTITY Ucirc "&#219;" ><!-- capital U, circumflex accent -->
+ <!ENTITY Uuml "&#220;" ><!-- capital U, dieresis or umlaut mark -->
+ <!ENTITY Yacute "&#221;" ><!-- capital Y, acute accent -->
+ <!ENTITY THORN "&#222;" ><!-- capital THORN, Icelandic -->
+ <!ENTITY szlig "&#223;" ><!-- small sharp s, German (sz ligature) -->
+ <!ENTITY agrave "&#224;" ><!-- small a, grave accent -->
+ <!ENTITY aacute "&#225;" ><!-- small a, acute accent -->
+ <!ENTITY acirc "&#226;" ><!-- small a, circumflex accent -->
+ <!ENTITY atilde "&#227;" ><!-- small a, tilde -->
+ <!ENTITY auml "&#228;" ><!-- small a, dieresis or umlaut mark -->
+ <!ENTITY aring "&#229;" ><!-- small a, ring -->
+ <!ENTITY aelig "&#230;" ><!-- small ae diphthong (ligature) -->
+ <!ENTITY ccedil "&#231;" ><!-- small c, cedilla -->
+ <!ENTITY egrave "&#232;" ><!-- small e, grave accent -->
+ <!ENTITY eacute "&#233;" ><!-- small e, acute accent -->
+ <!ENTITY ecirc "&#234;" ><!-- small e, circumflex accent -->
+ <!ENTITY euml "&#235;" ><!-- small e, dieresis or umlaut mark -->
+ <!ENTITY igrave "&#236;" ><!-- small i, grave accent -->
+ <!ENTITY iacute "&#237;" ><!-- small i, acute accent -->
+ <!ENTITY icirc "&#238;" ><!-- small i, circumflex accent -->
+ <!ENTITY iuml "&#239;" ><!-- small i, dieresis or umlaut mark -->
+ <!ENTITY eth "&#240;" ><!-- small eth, Icelandic -->
+ <!ENTITY ntilde "&#241;" ><!-- small n, tilde -->
+ <!ENTITY ograve "&#242;" ><!-- small o, grave accent -->
+ <!ENTITY oacute "&#243;" ><!-- small o, acute accent -->
+ <!ENTITY ocirc "&#244;" ><!-- small o, circumflex accent -->
+ <!ENTITY otilde "&#245;" ><!-- small o, tilde -->
+ <!ENTITY ouml "&#246;" ><!-- small o, dieresis or umlaut mark -->
+
+ <!ENTITY oslash "&#248;" ><!-- small o, slash -->
+ <!ENTITY ugrave "&#249;" ><!-- small u, grave accent -->
+ <!ENTITY uacute "&#250;" ><!-- small u, acute accent -->
+ <!ENTITY ucirc "&#251;" ><!-- small u, circumflex accent -->
+ <!ENTITY uuml "&#252;" ><!-- small u, dieresis or umlaut mark -->
+ <!ENTITY yacute "&#253;" ><!-- small y, acute accent -->
+ <!ENTITY thorn "&#254;" ><!-- small thorn, Icelandic -->
+ <!ENTITY yuml "&#255;" ><!-- small y, dieresis or umlaut mark -->
+
diff --git a/src/resources/entities/ISOnum.pen b/src/resources/entities/ISOnum.pen
new file mode 100755
index 0000000000..02605bfb58
--- /dev/null
+++ b/src/resources/entities/ISOnum.pen
@@ -0,0 +1,109 @@
+<!-- (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 % ISOnum PUBLIC
+ "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML">
+ %ISOnum;
+-->
+<!-- This version of the entity set can be used with any SGML document
+ which uses ISO 10646 as its document character set.
+ This includes XML documents and ISO HTML documents.
+ This entity set uses hexadecimal numeric character references.
+
+ Creator: Rick Jelliffe, Allette Systems
+
+ Version: 1997-07-07
+-->
+
+<!ENTITY half "&#189;" ><!--=fraction one-half-->
+<!ENTITY frac12 "&#189;" ><!--=fraction one-half-->
+<!ENTITY frac14 "&#188;" ><!--=fraction one-quarter-->
+<!ENTITY frac34 "&#190;" ><!--=fraction three-quarters-->
+<!ENTITY frac18 "&#x215B;" >
+ <!-- or "&#xB1;&#x202;&#x2044;&#x2088;" --><!--=fraction one-eighth-->
+<!ENTITY frac38 "&#x215C;" >
+ <!-- or "&#xB3;&#x2044;&#x2088;" --><!--=fraction three-eighths-->
+<!ENTITY frac58 "&#x215D;" >
+ <!-- or "&#x2075;&#x2044;&#x2088;" --><!--=fraction five-eighths-->
+<!ENTITY frac78 "&#x215E;" >
+ <!-- or "&#x2077;&#x2044;&#x2088;" --><!--=fraction seven-eighths-->
+
+<!ENTITY sup1 "&#185;" ><!--=superscript one-->
+<!ENTITY sup2 "&#178;" ><!--=superscript two-->
+<!ENTITY sup3 "&#179;" ><!--=superscript three-->
+
+<!ENTITY plus "+" ><!--=plus sign B:-->
+<!ENTITY plusmn "&#xB1;" ><!--/pm B: =plus-or-minus sign-->
+<!ENTITY lt "&#38;#60;" ><!--=less-than sign R:-->
+<!ENTITY equals "=" ><!--=equals sign R:-->
+<!ENTITY gt ">" ><!--=greater-than sign R:-->
+<!ENTITY divide "&#247;" ><!--/div B: =divide sign-->
+<!ENTITY times "&#215;" ><!--/times B: =multiply sign-->
+
+<!ENTITY curren "&#164;" ><!--=general currency sign-->
+<!ENTITY pound "&#163;" ><!--=pound sign-->
+<!ENTITY dollar "$" ><!--=dollar sign-->
+<!ENTITY cent "&#162;" ><!--=cent sign-->
+<!ENTITY yen "&#165;" ><!--/yen =yen sign-->
+
+<!ENTITY num "#" ><!--=number sign-->
+<!ENTITY percnt "&#37;" ><!--=percent sign-->
+<!ENTITY amp "&#38;#38;" ><!--=ampersand-->
+<!ENTITY ast "*" ><!--/ast B: =asterisk-->
+<!ENTITY commat "@" ><!--=commercial at-->
+<!ENTITY lsqb "[" ><!--/lbrack O: =left square bracket-->
+<!ENTITY bsol "\" ><!--/backslash =reverse solidus-->
+<!ENTITY rsqb "]" ><!--/rbrack C: =right square bracket-->
+<!ENTITY lcub "{" ><!--/lbrace O: =left curly bracket-->
+<!ENTITY horbar "&#x2015;" ><!--=horizontal bar-->
+<!ENTITY verbar "|" ><!--/vert =vertical bar-->
+<!ENTITY rcub "}" ><!--/rbrace C: =right curly bracket-->
+<!ENTITY micro "&#181;" ><!--=micro sign-->
+<!ENTITY ohm "&#2126;" ><!--=ohm sign-->
+<!ENTITY deg "&#176;" ><!--=degree sign-->
+<!ENTITY ordm "&#186;" ><!--=ordinal indicator, masculine-->
+<!ENTITY ordf "&#170;" ><!--=ordinal indicator, feminine-->
+<!ENTITY sect "&#167;" ><!--=section sign-->
+<!ENTITY para "&#182;" ><!--=pilcrow (paragraph sign)-->
+<!ENTITY middot "&#183;" ><!--/centerdot B: =middle dot-->
+<!ENTITY larr "&#x2190;" ><!--/leftarrow /gets A: =leftward arrow-->
+<!ENTITY rarr "&#x2192;" ><!--/rightarrow /to A: =rightward arrow-->
+<!ENTITY uarr "&#x2191;" ><!--/uparrow A: =upward arrow-->
+<!ENTITY darr "&#x2193;" ><!--/downarrow A: =downward arrow-->
+<!ENTITY copy "&#169;" ><!--=copyright sign-->
+<!ENTITY reg "&#174;" ><!--/circledR =registered sign-->
+<!ENTITY trade "&#8482;" ><!--=trade mark sign-->
+<!ENTITY brvbar "&#xA6;" ><!--=bren (vertical) bar-->
+<!ENTITY not "&#xAC;" ><!--/neg /lnot =not sign-->
+<!ENTITY sung "&#x266A;" ><!--=music note (sung text sign)-->
+
+<!ENTITY excl "!" ><!--=exclamation mark-->
+<!ENTITY iexcl "&#xA1;" ><!--=inverted exclamation mark-->
+<!ENTITY quot '"' ><!--=quotation mark-->
+<!ENTITY apos "'" ><!--=apostrophe-->
+<!ENTITY lpar "(" ><!--O: =left parenthesis-->
+<!ENTITY rpar ")" ><!--C: =right parenthesis-->
+<!ENTITY comma "," ><!--P: =comma-->
+<!ENTITY lowbar "_" ><!--=low line-->
+<!ENTITY hyphen "&#x2010;" ><!--=hyphen-->
+<!ENTITY period "." ><!--=full stop, period-->
+<!ENTITY sol "/" ><!--=solidus-->
+<!ENTITY colon ":" ><!--/colon P:-->
+<!ENTITY semi ";" ><!--=semicolon P:-->
+<!ENTITY quest "?" ><!--=question mark-->
+<!ENTITY iquest "&#xBF;" ><!--=inverted question mark-->
+<!ENTITY laquo "&#x2039;" ><!--=angle quotation mark, left
+ But note that Unicode 1 & Maler & el Andaloussi give &#xAB; -->
+<!ENTITY raquo "&#x203A;" ><!--=angle quotation mark, right
+ But note that Unicode 1 & Maler & el Andaloussi give &#xBB; -->
+<!ENTITY lsquo "&#x2018;" ><!--=single quotation mark, left-->
+<!ENTITY rsquo "&#x2019;" ><!--=single quotation mark, right-->
+<!ENTITY ldquo "&#x201C;" ><!--=double quotation mark, left-->
+<!ENTITY rdquo "&#x201D;" ><!--=double quotation mark, right-->
+<!ENTITY nbsp "&#160;" ><!--=no break (required) space-->
+<!ENTITY shy "&#173;" ><!--=soft hyphen-->
+
+
diff --git a/src/resources/entities/ISOpub.pen b/src/resources/entities/ISOpub.pen
new file mode 100755
index 0000000000..04a5732b45
--- /dev/null
+++ b/src/resources/entities/ISOpub.pen
@@ -0,0 +1,110 @@
+<!-- (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 % ISOpub PUBLIC
+ "ISO 8879:1986//ENTITIES Publishing//EN//XML">
+ %ISOpub;
+-->
+<!-- This version of the entity set can be used with any SGML document
+ which uses ISO 10646 as its document character set.
+ This includes XML documents and ISO HTML documents.
+ This entity set uses hexadecimal numeric character references.
+
+ Creator: Rick Jelliffe, Allette Systems
+
+ Version: 1997-07-07
+-->
+<!ENTITY emsp "&#x2003;" ><!--=em space-->
+<!ENTITY ensp "&#x2002;" ><!--=en space (1/2-em)-->
+<!ENTITY emsp13 "&#x2004;" ><!--=1/3-em space-->
+<!ENTITY emsp14 "&#x2005;" ><!--=1/4-em space-->
+<!ENTITY numsp "&#x2007;" ><!--=digit space (width of a number)-->
+<!ENTITY puncsp "&#x2008;" ><!--=punctuation space (width of comma)-->
+<!ENTITY thinsp "&#x2009;" ><!--=thin space (1/6-em)-->
+<!ENTITY hairsp "&#x200A;" ><!--=hair space-->
+<!ENTITY mdash "&#x2014;" ><!--=em dash-->
+<!ENTITY ndash "&#x2013;" ><!--=en dash-->
+<!ENTITY dash "&#x2010;" ><!--=hyphen (true graphic)-->
+<!ENTITY blank "&#x2423;" ><!--=significant blank symbol-->
+<!ENTITY hellip "&#x2026;" ><!--=ellipsis (horizontal)-->
+<!ENTITY nldr "&#x2025;" ><!--=double baseline dot (en leader)-->
+<!ENTITY frac13 "&#x2153;" ><!--=fraction one-third-->
+<!ENTITY frac23 "&#x2154;" ><!--=fraction two-thirds-->
+<!ENTITY frac15 "&#x2155;" ><!--=fraction one-fifth-->
+<!ENTITY frac25 "&#x2156;" ><!--=fraction two-fifths-->
+<!ENTITY frac35 "&#x2157;" ><!--=fraction three-fifths-->
+<!ENTITY frac45 "&#x2158;" ><!--=fraction four-fifths-->
+<!ENTITY frac16 "&#x2159;" ><!--=fraction one-sixth-->
+<!ENTITY frac56 "&#x215a;" ><!--=fraction five-sixths-->
+<!ENTITY incare "&#x2105;" ><!--=in-care-of symbol-->
+<!ENTITY block "&#x2588;" ><!--=full block-->
+<!ENTITY uhblk "&#x2580;" ><!--=upper half block-->
+<!ENTITY lhblk "&#x2584;" ><!--=lower half block-->
+<!ENTITY blk14 "&#x2591;" ><!--=25% shaded block-->
+<!ENTITY blk12 "&#x2592;" ><!--=50% shaded block-->
+<!ENTITY blk34 "&#x2593;" ><!--=75% shaded block-->
+<!ENTITY marker "&#x25AE;" ><!--=histogram marker-->
+<!ENTITY cir "&#x25CB;" ><!--/circ B: =circle, open-->
+<!ENTITY squ "&#x25A1;" ><!--=square, open-->
+<!ENTITY rect "&#x25AD;" ><!--=rectangle, open-->
+<!ENTITY utri "&#x25B5;" ><!--/triangle =up triangle, open-->
+<!ENTITY dtri "&#x25BF;" ><!--/triangledown =down triangle, open-->
+<!ENTITY star "&#x2606;" ><!--=star, open-->
+<!ENTITY bull "&#x2022;" ><!--/bullet B: =round bullet, filled-->
+<!ENTITY squf "&#x25AA;" ><!--/blacksquare =sq bullet, filled-->
+<!ENTITY utrif "&#x25B4;" ><!--/blacktriangle =up tri, filled-->
+<!ENTITY dtrif "&#x25BE;" ><!--/blacktriangledown =dn tri, filled-->
+<!ENTITY ltrif "&#x25C2;" ><!--/blacktriangleleft R: =l tri, filled-->
+<!ENTITY rtrif "&#x25B8;" ><!--/blacktriangleright R: =r tri, filled-->
+<!ENTITY clubs "&#x2663;" ><!--/clubsuit =club suit symbol-->
+<!ENTITY diams "&#x2662;" ><!--/diamondsuit =diamond suit symbol-->
+<!ENTITY hearts "&#x2661;" ><!--/heartsuit =heart suit symbol-->
+<!ENTITY spades "&#x2660;" ><!--/spadesuit =spades suit symbol-->
+<!ENTITY malt "&#x2720;" ><!--/maltese =maltese cross-->
+<!ENTITY dagger "&#x2020;" ><!--/dagger B: =dagger-->
+<!ENTITY Dagger "&#x2021;" ><!--/ddagger B: =double dagger-->
+<!ENTITY check "&#x2713;" ><!--/checkmark =tick, check mark-->
+<!ENTITY cross "&#x2717;" ><!--=ballot cross-->
+<!ENTITY sharp "&#x266F;" ><!--/sharp =musical sharp-->
+<!ENTITY flat "&#x266D;" ><!--/flat =musical flat-->
+<!ENTITY male "&#x2642;" ><!--=male symbol-->
+<!ENTITY female "&#x2640;" ><!--=female symbol-->
+<!ENTITY phone "&#x26E0;" ><!--=telephone symbol-->
+<!ENTITY telrec "&#x2315;" ><!--=telephone recorder symbol-->
+<!ENTITY copysr "&#x2117;" ><!--=sound recording copyright sign-->
+<!ENTITY caret "&#x2041;" ><!--=caret (insertion mark)-->
+<!ENTITY lsquor "&#x201A;" ><!--=rising single quote, left (low)-->
+<!ENTITY ldquor "&#x201E;" ><!--=rising dbl quote, left (low)-->
+
+<!ENTITY fflig "&#xFB00;" ><!--small ff ligature-->
+<!ENTITY filig "&#xFB01;" ><!--small fi ligature-->
+<!ENTITY fjlig "fj" ><!--small fj ligature-->
+<!ENTITY ffilig "&#xFB03;" ><!--small ffi ligature-->
+<!ENTITY ffllig "&#xFB04;" ><!--small ffl ligature-->
+<!ENTITY fllig "&#xFB02;" ><!--small fl ligature-->
+
+<!ENTITY mldr "&#x2025;" ><!--em leader-->
+<!ENTITY rdquor "&#x201D;" ><!--rising dbl quote, right (high)-->
+<!ENTITY rsquor "&#x2019;" ><!--rising single quote, right (high)-->
+<!ENTITY vellip "&#x22EE;" ><!--vertical ellipsis-->
+
+<!ENTITY hybull "&#x2043;" ><!--rectangle, filled (hyphen bullet)-->
+<!ENTITY loz "&#x2727;" ><!--/lozenge - lozenge or total mark-->
+<!ENTITY lozf "&#x2726;" ><!--/blacklozenge - lozenge, filled-->
+<!ENTITY ltri "&#x25C3;" ><!--/triangleleft B: l triangle, open-->
+<!ENTITY rtri "&#x25B9;" ><!--/triangleright B: r triangle, open-->
+<!ENTITY starf "&#x2605;" ><!--/bigstar - star, filled-->
+
+<!ENTITY natur "&#x266E;" ><!--/natural - music natural-->
+<!ENTITY rx "&#x211E;" ><!--pharmaceutical prescription (Rx)-->
+<!ENTITY sext "&#x2736;" ><!--sextile (6-pointed star)-->
+
+<!ENTITY target "&#x2316;" ><!--register mark or target-->
+<!ENTITY dlcrop "&#x230D;" ><!--downward left crop mark -->
+<!ENTITY drcrop "&#x230C;" ><!--downward right crop mark -->
+<!ENTITY ulcrop "&#x230F;" ><!--upward left crop mark -->
+<!ENTITY urcrop "&#x230E;" ><!--upward right crop mark -->
+
diff --git a/src/resources/entities/ISOtech.pen b/src/resources/entities/ISOtech.pen
new file mode 100755
index 0000000000..b3b39f9f1b
--- /dev/null
+++ b/src/resources/entities/ISOtech.pen
@@ -0,0 +1,85 @@
+
+<!-- (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 % ISOtech PUBLIC
+ "ISO 8879:1986//ENTITIES General Technical//EN//XML"
+ "ISOtech.pen">
+ %ISOtech;
+-->
+<!-- This version of the entity set can be used with any SGML document
+ which uses ISO 10646 as its document character set.
+ This includes XML documents and ISO HTML documents.
+ This entity set uses hexadecimal numeric character references.
+
+ Creator: Rick Jelliffe, Allette Systems
+
+ Version: 1997-07-07
+-->
+<!ENTITY aleph "&#x2135;" ><!--/aleph =aleph, Hebrew-->
+<!ENTITY and "&#x2227;" ><!--/wedge /land B: =logical and-->
+<!ENTITY ang90 "&#x221F;" ><!--=right (90 degree) angle-->
+<!ENTITY angsph "&#x2222;" ><!--/sphericalangle =angle-spherical-->
+<!ENTITY ap "&#x2249;" ><!--/approx R: =approximate-->
+<!ENTITY becaus "&#x2235;" ><!--/because R: =because-->
+<!ENTITY bottom "&#x22A5;" ><!--/bot B: =perpendicular-->
+<!ENTITY cap "&#x2229;" ><!--/cap B: =intersection-->
+<!ENTITY cong "&#x2245;" ><!--/cong R: =congruent with-->
+<!ENTITY conint "&#x222E;" ><!--/oint L: =contour integral operator-->
+<!ENTITY cup "&#x222A;" ><!--/cup B: =union or logical sum-->
+<!ENTITY equiv "&#x2261;" ><!--/equiv R: =identical with-->
+<!ENTITY exist "&#x2203;" ><!--/exists =at least one exists-->
+<!ENTITY forall "&#x2200;" ><!--/forall =for all-->
+<!ENTITY fnof "&#x192;" ><!--=function of (italic small f)-->
+<!ENTITY ge "&#x2265;" ><!--/geq /ge R: =greater-than-or-equal-->
+<!ENTITY iff "&#x21D4;" ><!--/iff =if and only if-->
+<!ENTITY infin "&#x221E;" ><!--/infty =infinity-->
+<!ENTITY int "&#x222B;" ><!--/int L: =integral operator-->
+<!ENTITY isin "&#x2208;" ><!--/in R: =set membership-->
+<!ENTITY lang "&#x2329;" ><!--/langle O: =left angle bracket-->
+<!ENTITY lArr "&#x21D0;" ><!--/Leftarrow A: =is implied by-->
+<!ENTITY le "&#x2264;" ><!--/leq /le R: =less-than-or-equal-->
+<!ENTITY minus "-" ><!--B: =minus sign-->
+<!ENTITY mnplus "&#x2213;" ><!--/mp B: =minus-or-plus sign-->
+<!ENTITY nabla "&#x2207;" ><!--/nabla =del, Hamilton operator-->
+<!ENTITY ne "&#x2260;" ><!--/ne /neq R: =not equal-->
+<!ENTITY ni "&#x220B;" ><!--/ni /owns R: =contains-->
+<!ENTITY or "&#x2228;" ><!--/vee /lor B: =logical or-->
+<!ENTITY par "&#x2225;" ><!--/parallel R: =parallel-->
+<!ENTITY part "&#x2202;" ><!--/partial =partial differential-->
+<!ENTITY permil "&#x2030;" ><!--=per thousand-->
+<!ENTITY perp "&#x22A5;" ><!--/perp R: =perpendicular-->
+<!ENTITY prime "&#x2032;" ><!--/prime =prime or minute-->
+<!ENTITY Prime "&#x2033;" ><!--=double prime or second-->
+<!ENTITY prop "&#x221D;" ><!--/propto R: =is proportional to-->
+<!ENTITY radic "&#x221A;" ><!--/surd =radical-->
+<!ENTITY rang "&#x232A;" ><!--/rangle C: =right angle bracket-->
+<!ENTITY rArr "&#x21D2;" ><!--/Rightarrow A: =implies-->
+<!ENTITY sim "&#x223C;" ><!--/sim R: =similar-->
+<!ENTITY sime "&#x2243;" ><!--/simeq R: =similar, equals-->
+<!ENTITY square "&#x25A1;" ><!--/square B: =square-->
+<!ENTITY sub "&#x2282;" ><!--/subset R: =subset or is implied by-->
+<!ENTITY sube "&#x2286;" ><!--/subseteq R: =subset, equals-->
+<!ENTITY sup "&#x2283;" ><!--/supset R: =superset or implies-->
+<!ENTITY supe "&#x2287;" ><!--/supseteq R: =superset, equals-->
+<!ENTITY there4 "&#x2234;" ><!--/therefore R: =therefore-->
+<!ENTITY Verbar "&#x2016;" ><!--/Vert =dbl vertical bar-->
+
+<!ENTITY angst "&#x212B;" ><!--Angstrom =capital A, ring-->
+<!ENTITY bernou "&#x212C;" ><!--Bernoulli function (script capital B)-->
+<!ENTITY compfn "&#x2218;" ><!--B: composite function (small circle)-->
+<!ENTITY Dot "&#xA8;" ><!--=dieresis or umlaut mark-->
+<!ENTITY DotDot "&#x20DC;" ><!--four dots above-->
+<!ENTITY hamilt "&#x210B;" ><!--Hamiltonian (script capital H)-->
+<!ENTITY lagran "&#x2112;" ><!--Lagrangian (script capital L)-->
+<!ENTITY lowast "&#x2217;" ><!--low asterisk-->
+<!ENTITY notin "&#x2209;" ><!--N: negated set membership-->
+<!ENTITY order "&#x2134;" ><!--order of (script small o)-->
+<!ENTITY phmmat "&#x2133;" ><!--physics M-matrix (script capital M)-->
+<!ENTITY tdot "&#x20DB;" ><!--three dots above-->
+<!ENTITY tprime "&#x2034;" ><!--triple prime-->
+<!ENTITY wedgeq "&#x2259;" ><!--R: corresponds to (wedge, equals)-->
+
diff --git a/src/resources/entities/README b/src/resources/entities/README
new file mode 100755
index 0000000000..5473cec242
--- /dev/null
+++ b/src/resources/entities/README
@@ -0,0 +1,5 @@
+See Apache Cocoon documentation
+"Entity resolution with catalogs" (catalog.html)
+
+Note: You must move the CatalogManager.properties file to
+some filesystem location that is accessible to your classpath.
diff --git a/src/resources/entities/XMLSchema.dtd b/src/resources/entities/XMLSchema.dtd
new file mode 100755
index 0000000000..aa3564caa5
--- /dev/null
+++ b/src/resources/entities/XMLSchema.dtd
@@ -0,0 +1,395 @@
+<!-- DTD for XML Schemas: Part 1: Structures
+ Public Identifier: "-//W3C//DTD XMLSCHEMA 200010//EN"
+ Official Location: http://www.w3.org/2000/10/XMLSchema.dtd -->
+<!-- $Id$ -->
+<!-- Note this DTD is NOT normative, or even definitive. --> <!--d-->
+<!-- prose copy in the structures REC is the definitive version --> <!--d-->
+<!-- (which shouldn't differ from this one except for this --> <!--d-->
+<!-- comment and entity expansions, but just in case) --> <!--d-->
+<!-- With the exception of cases with multiple namespace
+ prefixes for the XML Schema namespace, any XML document which is
+ not valid per this DTD given redefinitions in its internal subset of the
+ 'p' and 's' parameter entities below appropriate to its namespace
+ declaration of the XML Schema namespace is almost certainly not
+ a valid schema. -->
+
+<!-- The simpleType element and its constituent parts
+ are defined in XML Schema: Part 2: Datatypes -->
+<!ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' >
+
+<!ENTITY % p ''> <!-- can be overriden in the internal subset of a
+ schema document to establish a namespace prefix -->
+<!ENTITY % s ''> <!-- if %p is defined (e.g. as foo:) then you must
+ also define %s as the suffix for the appropriate
+ namespace declaration (e.g. :foo) -->
+<!ENTITY % nds 'xmlns%s;'>
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % schema "%p;schema">
+<!ENTITY % complexType "%p;complexType">
+<!ENTITY % complexContent "%p;complexContent">
+<!ENTITY % simpleContent "%p;simpleContent">
+<!ENTITY % extension "%p;extension">
+<!ENTITY % element "%p;element">
+<!ENTITY % unique "%p;unique">
+<!ENTITY % key "%p;key">
+<!ENTITY % keyref "%p;keyref">
+<!ENTITY % selector "%p;selector">
+<!ENTITY % field "%p;field">
+<!ENTITY % group "%p;group">
+<!ENTITY % all "%p;all">
+<!ENTITY % choice "%p;choice">
+<!ENTITY % sequence "%p;sequence">
+<!ENTITY % any "%p;any">
+<!ENTITY % anyAttribute "%p;anyAttribute">
+<!ENTITY % attribute "%p;attribute">
+<!ENTITY % attributeGroup "%p;attributeGroup">
+<!ENTITY % include "%p;include">
+<!ENTITY % import "%p;import">
+<!ENTITY % redefine "%p;redefine">
+<!ENTITY % notation "%p;notation">
+
+<!-- annotation elements -->
+<!ENTITY % annotation "%p;annotation">
+<!ENTITY % appinfo "%p;appinfo">
+<!ENTITY % documentation "%p;documentation">
+
+<!-- Customisation entities for the ATTLIST of each element type.
+ Define one of these if your schema takes advantage of the
+ anyAttribute='##other' in the schema for schemas -->
+
+<!ENTITY % schemaAttrs ''>
+<!ENTITY % complexTypeAttrs ''>
+<!ENTITY % complexContentAttrs ''>
+<!ENTITY % simpleContentAttrs ''>
+<!ENTITY % extensionAttrs ''>
+<!ENTITY % elementAttrs ''>
+<!ENTITY % groupAttrs ''>
+<!ENTITY % allAttrs ''>
+<!ENTITY % choiceAttrs ''>
+<!ENTITY % sequenceAttrs ''>
+<!ENTITY % anyAttrs ''>
+<!ENTITY % anyAttributeAttrs ''>
+<!ENTITY % attributeAttrs ''>
+<!ENTITY % attributeGroupAttrs ''>
+<!ENTITY % uniqueAttrs ''>
+<!ENTITY % keyAttrs ''>
+<!ENTITY % keyrefAttrs ''>
+<!ENTITY % selectorAttrs ''>
+<!ENTITY % fieldAttrs ''>
+<!ENTITY % includeAttrs ''>
+<!ENTITY % importAttrs ''>
+<!ENTITY % redefineAttrs ''>
+<!ENTITY % notationAttrs ''>
+
+<!ENTITY % complexDerivationChoice "(extension|restriction)">
+<!ENTITY % complexDerivationSet "CDATA">
+ <!-- #all or space-separated list drawn from derivationChoice -->
+<!ENTITY % blockSet "CDATA">
+ <!-- #all or space-separated list drawn from
+ derivationChoice + 'substitution' -->
+
+<!ENTITY % mgs '%all; | %choice; | %sequence;'>
+<!ENTITY % cs '%choice; | %sequence;'>
+<!ENTITY % formValues '(qualified|unqualified)'>
+
+
+<!ENTITY % attrDecls '((%attribute;| %attributeGroup;)*,(%anyAttribute;)?)'>
+
+<!ENTITY % particleAndAttrs '((%mgs; | %group;)?, %attrDecls;)'>
+
+<!-- This is used in part2 -->
+<!ENTITY % restriction1 '((%mgs; | %group;)?)'>
+
+%xs-datatypes;
+
+<!-- the duplication below is to produce an unambiguous content model
+ which allows annotation everywhere -->
+<!ELEMENT %schema; ((%include; | %import; | %redefine; | %annotation;)*,
+ ((%simpleType; | %complexType;
+ | %element; | %attribute;
+ | %attributeGroup; | %group;
+ | %notation; ),
+ (%annotation;)*)* )>
+<!ATTLIST %schema;
+ targetNamespace %URIref; #IMPLIED
+ version CDATA #IMPLIED
+ %nds; %URIref; #FIXED 'http://www.w3.org/2000/10/XMLSchema'
+ finalDefault %complexDerivationSet; ''
+ blockDefault %blockSet; ''
+ id ID #IMPLIED
+ elementFormDefault %formValues; 'unqualified'
+ attributeFormDefault %formValues; 'unqualified'
+ %schemaAttrs;>
+<!-- Note the xmlns declaration is NOT in the Schema for Schemas,
+ because at the Infoset level where schemas operate,
+ xmlns(:prefix) is NOT an attribute! -->
+
+<!-- The id attribute here and below is for use in external references
+ from non-schemas using simple fragment identifiers.
+ It is NOT used for schema-to-schema reference, internal or
+ external. -->
+
+<!-- a type is a named content type specification which allows attribute
+ declarations-->
+<!-- -->
+
+<!ELEMENT %complexType; ((%annotation;)?,
+ (%simpleContent;|%complexContent;|
+ %particleAndAttrs;))>
+
+<!ATTLIST %complexType;
+ name %NCName; #IMPLIED
+ id ID #IMPLIED
+ abstract %boolean; 'false'
+ final %complexDerivationSet; #IMPLIED
+ block %complexDerivationSet; ''
+ mixed (true|false) 'false'
+ %complexTypeAttrs;>
+
+<!-- particleAndAttrs is shorthand for a root type -->
+<!-- mixed is disallowed if simpleContent, overriden if complexContent
+ has one too. -->
+
+<!-- If anyAttribute appears in one or more referenced attributeGroups
+ and/or explicitly, the intersection of the permissions is used -->
+
+<!ELEMENT %complexContent; (%restriction;|%extension;)>
+<!ATTLIST %complexContent;
+ mixed (true|false) #IMPLIED
+ id ID #IMPLIED
+ %complexContentAttrs;>
+
+<!-- restriction should use the branch defined above, not the simple
+ one from part2; extension should use the full model -->
+
+<!ELEMENT %simpleContent; (%restriction;|%extension;)>
+<!ATTLIST %simpleContent;
+ id ID #IMPLIED
+ %simpleContentAttrs;>
+
+<!-- restriction should use the simple branch from part2, not the
+ one defined above; extension should have no particle -->
+
+<!ELEMENT %extension; (%particleAndAttrs;)>
+<!ATTLIST %extension;
+ base %QName; #REQUIRED
+ id ID #IMPLIED
+ %extensionAttrs;>
+
+<!-- an element is declared by either:
+ a name and a type (either nested or referenced via the type attribute)
+ or a ref to an existing element declaration -->
+
+<!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
+ (%unique; | %key; | %keyref;)*)>
+<!-- simpleType or complexType only if no type|ref attribute -->
+<!-- ref not allowed at top level -->
+<!ATTLIST %element;
+ name %NCName; #IMPLIED
+ id ID #IMPLIED
+ ref %QName; #IMPLIED
+ type %QName; #IMPLIED
+ minOccurs %nonNegativeInteger; #IMPLIED
+ maxOccurs CDATA #IMPLIED
+ nullable %boolean; #IMPLIED
+ substitutionGroup %QName; #IMPLIED
+ abstract %boolean; 'false'
+ final %complexDerivationSet; #IMPLIED
+ block %blockSet; #IMPLIED
+ default CDATA #IMPLIED
+ fixed CDATA #IMPLIED
+ form %formValues; #IMPLIED
+ %elementAttrs;>
+<!-- type and ref are mutually exclusive.
+ name and ref are mutually exclusive, one is required -->
+<!-- In the absence of type AND ref, type defaults to type of
+ substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
+<!-- default and fixed are mutually exclusive -->
+
+<!ELEMENT %group; ((%annotation;)?,(%mgs;)?)>
+<!ATTLIST %group;
+ name %NCName; #IMPLIED
+ ref %QName; #IMPLIED
+ minOccurs %nonNegativeInteger; #IMPLIED
+ maxOccurs CDATA #IMPLIED
+ id ID #IMPLIED
+ %groupAttrs;>
+
+<!ELEMENT %all; ((%annotation;)?, (%element;)*)>
+<!ATTLIST %all;
+ minOccurs (1) #FIXED '1'
+ maxOccurs (1) #FIXED '1'
+ id ID #IMPLIED
+ %allAttrs;>
+
+<!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %choice;
+ minOccurs %nonNegativeInteger; '1'
+ maxOccurs CDATA '1'
+ id ID #IMPLIED
+ %choiceAttrs;>
+
+<!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %sequence;
+ minOccurs %nonNegativeInteger; '1'
+ maxOccurs CDATA '1'
+ id ID #IMPLIED
+ %sequenceAttrs;>
+
+<!-- an anonymous grouping in a model, or
+ a top-level named group definition, or a reference to same -->
+
+<!-- Note that if order is 'all', group is not allowed inside.
+ If order is 'all' THIS group must be alone (or referenced alone) at
+ the top level of a content model -->
+<!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
+<!-- Should allow minOccurs=0 inside order='all' . . . -->
+
+<!ELEMENT %any; (%annotation;)?>
+<!ATTLIST %any;
+ namespace CDATA '##any'
+ processContents (skip|lax|strict) 'strict'
+ minOccurs %nonNegativeInteger; '1'
+ maxOccurs CDATA '1'
+ id ID #IMPLIED
+ %anyAttrs;>
+
+<!-- namespace is interpreted as follows:
+ ##any - - any non-conflicting WFXML at all
+
+ ##other - - any non-conflicting WFXML from namespace other
+ than targetNamespace
+
+ ##local - - any unqualified non-conflicting WFXML/attribute
+ one or - - any non-conflicting WFXML from
+ more URI the listed namespaces
+ references
+
+ ##targetNamespace ##local may appear in the above list,
+ with the obvious meaning -->
+
+<!ELEMENT %anyAttribute; (%annotation;)?>
+<!ATTLIST %anyAttribute;
+ namespace CDATA '##any'
+ processContents (skip|lax|strict) 'strict'
+ id ID #IMPLIED
+ %anyAttributeAttrs;>
+<!-- namespace is interpreted as for 'any' above -->
+
+<!-- simpleType only if no type|ref attribute -->
+<!-- ref not allowed at top level, name iff at top level -->
+<!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
+<!ATTLIST %attribute;
+ name %NCName; #IMPLIED
+ id ID #IMPLIED
+ ref %QName; #IMPLIED
+ type %QName; #IMPLIED
+ use (prohibited|optional|required|fixed|default) #IMPLIED
+ value CDATA #IMPLIED
+ form %formValues; #IMPLIED
+ %attributeAttrs;>
+<!-- type and ref are mutually exclusive.
+ name and ref are mutually exclusive, one is required -->
+<!-- value only if use is fixed, required or default, or name -->
+<!-- name and use are mutually exclusive -->
+<!-- default for use is optional when nested, none otherwise -->
+<!-- type attr and simpleType content are mutually exclusive -->
+
+<!-- an attributeGroup is a named collection of attribute decls, or a
+ reference thereto -->
+<!ELEMENT %attributeGroup; ((%annotation;)?,
+ (%attribute; | %attributeGroup;)*,
+ (%anyAttribute;)?) >
+<!ATTLIST %attributeGroup;
+ name %NCName; #IMPLIED
+ id ID #IMPLIED
+ ref %QName; #IMPLIED
+ %attributeGroupAttrs;>
+
+<!-- ref iff no content, no name. ref iff not top level -->
+
+<!-- better reference mechanisms -->
+<!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %unique;
+ name %NCName; #REQUIRED
+ id ID #IMPLIED
+ %uniqueAttrs;>
+
+<!ELEMENT %key; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %key;
+ name %NCName; #REQUIRED
+ id ID #IMPLIED
+ %keyAttrs;>
+
+<!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %keyref;
+ name %NCName; #REQUIRED
+ refer %QName; #REQUIRED
+ id ID #IMPLIED
+ %keyrefAttrs;>
+
+<!ELEMENT %selector; ((%annotation;)?)>
+<!ATTLIST %selector;
+ xpath %XPathExpr; #REQUIRED
+ id ID #IMPLIED
+ %selectorAttrs;>
+<!ELEMENT %field; ((%annotation;)?)>
+<!ATTLIST %field;
+ xpath %XPathExpr; #REQUIRED
+ id ID #IMPLIED
+ %fieldAttrs;>
+
+<!-- Schema combination mechanisms -->
+<!ELEMENT %include; (%annotation;)?>
+<!ATTLIST %include;
+ schemaLocation %URIref; #REQUIRED
+ id ID #IMPLIED
+ %includeAttrs;>
+
+<!ELEMENT %import; (%annotation;)?>
+<!ATTLIST %import;
+ namespace %URIref; #IMPLIED
+ schemaLocation %URIref; #IMPLIED
+ id ID #IMPLIED
+ %importAttrs;>
+
+<!ELEMENT %redefine; (%annotation; | %simpleType; | %complexType; |
+ %attributeGroup; | %group;)*>
+<!ATTLIST %redefine;
+ schemaLocation %URIref; #REQUIRED
+ id ID #IMPLIED
+ %redefineAttrs;>
+
+<!ELEMENT %notation; (%annotation;)?>
+<!ATTLIST %notation;
+ name %NCName; #REQUIRED
+ id ID #IMPLIED
+ public CDATA #REQUIRED
+ system %URIref; #IMPLIED
+ %notationAttrs;>
+
+<!-- Annotation is either application information or documentation -->
+<!-- By having these here they are available for datatypes as well
+ as all the structures elements -->
+
+<!ELEMENT %annotation; (%appinfo; | %documentation;)*>
+
+<!-- User must define annotation elements in internal subset for this
+ to work -->
+<!ELEMENT %appinfo; ANY> <!-- too restrictive -->
+<!ATTLIST %appinfo;
+ source %URIref; #IMPLIED
+ id ID #IMPLIED
+ %appinfoAttrs;>
+<!ELEMENT %documentation; ANY> <!-- too restrictive -->
+<!ATTLIST %documentation;
+ source %URIref; #IMPLIED
+ id ID #IMPLIED
+ xml:lang CDATA #IMPLIED
+ %documentationAttrs;>
+
+<!NOTATION XMLSchemaStructures PUBLIC
+ 'structures' 'http://www.w3.org/2000/10/XMLSchema.xsd' >
+<!NOTATION XML PUBLIC
+ 'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >
diff --git a/src/resources/entities/book-cocoon-v10.dtd b/src/resources/entities/book-cocoon-v10.dtd
new file mode 100755
index 0000000000..77652f8ce4
--- /dev/null
+++ b/src/resources/entities/book-cocoon-v10.dtd
@@ -0,0 +1,70 @@
+<!-- ===================================================================
+
+ Apache Cocoon Documentation Book DTD (Version 1.0)
+
+PURPOSE:
+This DTD defines the */book.xml documentation configuration files.
+
+TYPICAL INVOCATION:
+
+ <!DOCTYPE book PUBLIC
+ "-//APACHE//DTD Cocoon Documentation Book Vx.yz//EN"
+ "http://xml.apache.org/DTD/book-cocoon-vxyz.dtd">
+
+ where
+
+ x := major version
+ y := minor version
+ z := status identifier (optional)
+
+NOTES:
+We need to replace this DTD with the proper one.
+We are only using this DTD to enable validation during "build docs"
+because every XML instance must declare its ruleset.
+
+This initial minimal DTD has been reverse-engineered from the structure
+of the current documents, e.g.
+ docuemntation/xdocs/book.xml
+
+AUTHORS:
+ David Crossley <crossley@apache.org>
+
+FIXME:
+ - find the proper DTD for book.xml
+
+CHANGE HISTORY:
+ 20011031 Initial version. (DC)
+
+COPYRIGHT:
+ Copyright (c) @year@ The Apache Software Foundation.
+
+ Permission to copy in any form is granted provided this notice is
+ included in all copies. Permission to redistribute is granted
+ provided this file is distributed untouched in all its parts and
+ included files.
+
+==================================================================== -->
+
+<!ELEMENT book (menu+)>
+<!ELEMENT menu (menu-item|external)*>
+<!ELEMENT menu-item EMPTY>
+<!ELEMENT external EMPTY>
+<!ATTLIST book software CDATA #REQUIRED
+ title CDATA #REQUIRED
+ copyright CDATA #REQUIRED
+ xmlns:xlink CDATA #IMPLIED
+>
+<!ATTLIST menu label CDATA #REQUIRED
+>
+<!ATTLIST menu-item label CDATA #REQUIRED
+ href CDATA #REQUIRED
+ type (visible|hidden) "visible"
+>
+<!ATTLIST external label CDATA #REQUIRED
+ href CDATA #REQUIRED
+ type (visible|hidden) "visible"
+>
+
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->
diff --git a/src/resources/entities/catalog b/src/resources/entities/catalog
new file mode 100755
index 0000000000..4ebdde7b97
--- /dev/null
+++ b/src/resources/entities/catalog
@@ -0,0 +1,67 @@
+-- this is the default OASIS catalog for Apache Cocoon --
+
+OVERRIDE YES
+
+-- ISO public identifiers for sets of character entities --
+PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//XML"
+ "ISOlat1.pen"
+PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+ "ISOlat1.pen"
+PUBLIC "ISO 9573-15:1993//ENTITIES Greek Letters//EN//XML"
+ "ISOgrk1.pen"
+PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN//XML"
+ "ISOpub.pen"
+PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN//XML"
+ "ISOtech.pen"
+PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+ "ISOnum.pen"
+
+-- Document Type Definitions --
+PUBLIC "-//APACHE//DTD Documentation V1.0//EN"
+ "document-v10.dtd"
+PUBLIC "-//APACHE//DTD Changes V1.0//EN"
+ "changes-v10.dtd"
+PUBLIC "-//APACHE//DTD FAQ V1.0//EN"
+ "faq-v10.dtd"
+PUBLIC "-//APACHE//DTD JavaDoc V1.0//EN"
+ "javadoc-v04draft.dtd"
+PUBLIC "-//APACHE//DTD Specification V1.0//EN"
+ "specification-v10.dtd"
+PUBLIC "-//APACHE//DTD Todo V1.0//EN"
+ "todo-v10.dtd"
+PUBLIC "-//APACHE//DTD Cocoon Sitemap V0.2//EN"
+ "sitemap-v02.dtd"
+
+-- enabling validation during Cocoon's own "build docs" --
+-- all *.xml require DTD for validation during "build docs" --
+PUBLIC "-//APACHE//DTD Cocoon Documentation Book V1.0//EN"
+ "book-cocoon-v10.dtd"
+
+-- Cocoon has extra <label/> element for documentation/svg/label-*.xml --
+-- which breaks validation against official svg10.dtd (why extra label?) --
+PUBLIC "-//APACHE//DTD Cocoon SVG minimal V1.1//EN"
+ "svg-cocoon-v11.dtd"
+PUBLIC "-//W3C//DTD SVG 1.0//EN"
+ "svg10.dtd"
+
+-- other DTDs that are yet without a Public Identifier --
+-- XMLSchema.dtd .. what is its purpose ? --
+
+-- Character entity set that is referenced by some DTDs --
+-- characters.ent --
+-- ... has no public identifier --
+-- should be OK because it will be resolved relative to the DTD --
+-- ... perhaps the DTD should use the ISO*.pen sets instead? --
+
+-- these entries are used for the catalog-demo sample application --
+OVERRIDE NO
+PUBLIC "-//Arbortext//TEXT Test Override//EN"
+ "catalog-demo/override.xml"
+OVERRIDE YES
+PUBLIC "-//Arbortext//TEXT Test Public Identifier//EN"
+ "catalog-demo/testpub.xml"
+SYSTEM "urn:x-arbortext:test-system-identifier"
+ "catalog-demo/testsys.xml"
+PUBLIC "-//Indexgeo//DTD Catalog Demo v1.0//EN"
+ "catalog-demo/catalog-demo-v10.dtd"
+-- end of entries for the catalog-demo sample application --
diff --git a/src/resources/entities/catalog-demo/catalog-demo-v10.dtd b/src/resources/entities/catalog-demo/catalog-demo-v10.dtd
new file mode 100755
index 0000000000..eefdb71887
--- /dev/null
+++ b/src/resources/entities/catalog-demo/catalog-demo-v10.dtd
@@ -0,0 +1,14 @@
+<!--
+This is the Document Type Definition for the Apache Cocoon sample
+demonstration "catalog-demo" which explains entity resolution
+using catalogs. See the Apache Cocoon documentation
+"Entity resolution with catalogs" (catalog.html).
+
+Version 1.0 2001-08-09
+-->
+
+<!ELEMENT catalog-demo (section+)>
+<!ELEMENT link (#PCDATA)>
+<!ATTLIST link href CDATA #IMPLIED>
+<!ELEMENT para (#PCDATA | link)*>
+<!ELEMENT section (para+)>
diff --git a/src/resources/entities/catalog-demo/override.xml b/src/resources/entities/catalog-demo/override.xml
new file mode 100644
index 0000000000..4082d515b6
--- /dev/null
+++ b/src/resources/entities/catalog-demo/override.xml
@@ -0,0 +1,4 @@
+<para>&note; This is content from the override.xml external file.
+ This content will not actually be included, because the catalog
+ was set with OVERRIDE NO for this public identifier.
+</para>
diff --git a/src/resources/entities/catalog-demo/testpub.xml b/src/resources/entities/catalog-demo/testpub.xml
new file mode 100644
index 0000000000..20b00dae7f
--- /dev/null
+++ b/src/resources/entities/catalog-demo/testpub.xml
@@ -0,0 +1,7 @@
+<para>&note; This paragraph is automatically included from the
+ testpub.xml external file.
+ The entity declaration deliberately used a non-existent file
+ as the system identifier. The catalog then used the declared
+ public identifer to resolve to a specific location on the local
+ filesystem.
+</para>
diff --git a/src/resources/entities/catalog-demo/testsys.xml b/src/resources/entities/catalog-demo/testsys.xml
new file mode 100644
index 0000000000..8b13e5f397
--- /dev/null
+++ b/src/resources/entities/catalog-demo/testsys.xml
@@ -0,0 +1,5 @@
+<para>&note; This paragraph is automatically included from the
+ testsys.xml external file.
+ The declared SYSTEM identifier was resolved by the catalog to a
+ specific location on the local filesystem.
+</para>
diff --git a/src/resources/entities/changes-v10.dtd b/src/resources/entities/changes-v10.dtd
new file mode 100755
index 0000000000..42ae93e091
--- /dev/null
+++ b/src/resources/entities/changes-v10.dtd
@@ -0,0 +1,91 @@
+<!-- ===================================================================
+
+ Apache Changes DTD (Version 1.0)
+
+PURPOSE:
+ This DTD was developed to create a simple yet powerful document
+ type for software development changes for use with the Apache projects.
+ It is an XML-compliant DTD and it's maintained by the Apache XML
+ project.
+
+TYPICAL INVOCATION:
+
+ <!DOCTYPE document PUBLIC
+ "-//APACHE//DTD Changes Vx.yz//EN"
+ "http://xml.apache.org/DTD/changes-vxyz.dtd">
+
+ where
+
+ x := major version
+ y := minor version
+ z := status identifier (optional)
+
+NOTES:
+ It is important, expecially in open developped software projects, to keep
+ track of software changes both to give users indications of bugs that might
+ have been resolved, as well, and not less important, to provide credits
+ for the support given to the project. It is considered vital to provide
+ adequate payback using recognition and credits to let users and developers
+ feel part of the community, thus increasing development power.
+
+AUTHORS:
+ Stefano Mazzocchi <stefano@apache.org>
+
+FIXME:
+
+CHANGE HISTORY:
+ 19991129 Initial version. (SM)
+ 20000316 Added bugfixing attribute. (SM)
+
+COPYRIGHT:
+ Copyright (c) @year@ The Apache Software Foundation.
+
+ Permission to copy in any form is granted provided this notice is
+ included in all copies. Permission to redistribute is granted
+ provided this file is distributed untouched in all its parts and
+ included files.
+
+==================================================================== -->
+
+<!-- =============================================================== -->
+<!-- Extend the Documentation DTD -->
+<!-- =============================================================== -->
+
+<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
+ possibly using public identifiers -->
+<!ENTITY % document-dtd SYSTEM "document-v10.dtd">
+%document-dtd;
+
+<!-- =============================================================== -->
+<!-- Common entities -->
+<!-- =============================================================== -->
+
+<!ENTITY % types "add|remove|update|fix">
+
+<!-- =============================================================== -->
+<!-- Document Type Definition -->
+<!-- =============================================================== -->
+
+<!ELEMENT changes (devs, release*)>
+<!ATTLIST changes %common.att;
+ %title.att;>
+
+ <!ELEMENT devs (person+)>
+ <!ATTLIST devs %common.att;>
+
+ <!ELEMENT release (action+)>
+ <!ATTLIST release %common.att;
+ version CDATA #REQUIRED
+ date CDATA #REQUIRED>
+
+ <!ELEMENT action (%content.mix;)*>
+ <!ATTLIST action %common.att;
+ dev IDREF #REQUIRED
+ type (%types;) #IMPLIED
+ due-to CDATA #IMPLIED
+ due-to-email CDATA #IMPLIED
+ fixes-bug CDATA #IMPLIED>
+
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->
diff --git a/src/resources/entities/characters.ent b/src/resources/entities/characters.ent
new file mode 100755
index 0000000000..8ff50248fa
--- /dev/null
+++ b/src/resources/entities/characters.ent
@@ -0,0 +1,290 @@
+<!--
+ 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.
+-->
+
+<!-- Latin A -->
+<!ENTITY nbsp "&#160;"> <!-- U+00A0 ISOnum - no-break space = non-breaking space -->
+<!ENTITY iexcl "&#161;"> <!-- U+00A1 ISOnum - inverted exclamation mark -->
+<!ENTITY cent "&#162;"> <!-- U+00A2 ISOnum - cent sign -->
+<!ENTITY pound "&#163;"> <!-- U+00A3 ISOnum - pound sign -->
+<!ENTITY curren "&#164;"> <!-- U+00A4 ISOnum - currency sign -->
+<!ENTITY yen "&#165;"> <!-- U+00A5 ISOnum - yen sign = yuan sign -->
+<!ENTITY brvbar "&#166;"> <!-- U+00A6 ISOnum - broken bar = broken vertical bar -->
+<!ENTITY sect "&#167;"> <!-- U+00A7 ISOnum - section sign -->
+<!ENTITY uml "&#168;"> <!-- U+00A8 ISOdia - diaeresis = spacing diaeresis -->
+<!ENTITY copy "&#169;"> <!-- U+00A9 ISOnum - copyright sign -->
+<!ENTITY ordf "&#170;"> <!-- U+00AA ISOnum - feminine ordinal indicator -->
+<!ENTITY laquo "&#171;"> <!-- U+00AB ISOnum - left-pointing double angle quotation mark = left pointing guillemet -->
+<!ENTITY not "&#172;"> <!-- U+00AC ISOnum - not sign -->
+<!ENTITY shy "&#173;"> <!-- U+00AD ISOnum - soft hyphen = discretionary hyphen -->
+<!ENTITY reg "&#174;"> <!-- U+00AE ISOnum - registered sign = registered trade mark sign -->
+<!ENTITY macr "&#175;"> <!-- U+00AF ISOdia - macron = spacing macron = overline = APL overbar -->
+<!ENTITY deg "&#176;"> <!-- U+00B0 ISOnum - degree sign -->
+<!ENTITY plusmn "&#177;"> <!-- U+00B1 ISOnum - plus-minus sign = plus-or-minus sign -->
+<!ENTITY sup2 "&#178;"> <!-- U+00B2 ISOnum - superscript two = superscript digit two = squared -->
+<!ENTITY sup3 "&#179;"> <!-- U+00B3 ISOnum - superscript three = superscript digit three = cubed -->
+<!ENTITY acute "&#180;"> <!-- U+00B4 ISOdia - acute accent = spacing acute -->
+<!ENTITY micro "&#181;"> <!-- U+00B5 ISOnum - micro sign -->
+<!ENTITY para "&#182;"> <!-- U+00B6 ISOnum - pilcrow sign = paragraph sign -->
+<!ENTITY middot "&#183;"> <!-- U+00B7 ISOnum - middle dot = Georgian comma = Greek middle dot -->
+<!ENTITY cedil "&#184;"> <!-- U+00B8 ISOdia - cedilla = spacing cedilla -->
+<!ENTITY sup1 "&#185;"> <!-- U+00B9 ISOnum - superscript one = superscript digit one -->
+<!ENTITY ordm "&#186;"> <!-- U+00BA ISOnum - masculine ordinal indicator -->
+<!ENTITY raquo "&#187;"> <!-- U+00BB ISOnum - right-pointing double angle quotation mark = right pointing guillemet -->
+<!ENTITY frac14 "&#188;"> <!-- U+00BC ISOnum - vulgar fraction one quarter = fraction one quarter -->
+<!ENTITY frac12 "&#189;"> <!-- U+00BD ISOnum - vulgar fraction one half = fraction one half -->
+<!ENTITY frac34 "&#190;"> <!-- U+00BE ISOnum - vulgar fraction three quarters = fraction three quarters -->
+<!ENTITY iquest "&#191;"> <!-- U+00BF ISOnum - inverted question mark = turned question mark -->
+<!ENTITY Agrave "&#192;"> <!-- U+00C0 ISOlat1 - latin capital letter A with grave = latin capital letter A grave -->
+<!ENTITY Aacute "&#193;"> <!-- U+00C1 ISOlat1 - latin capital letter A with acute -->
+<!ENTITY Acirc "&#194;"> <!-- U+00C2 ISOlat1 - latin capital letter A with circumflex -->
+<!ENTITY Atilde "&#195;"> <!-- U+00C3 ISOlat1 - latin capital letter A with tilde -->
+<!ENTITY Auml "&#196;"> <!-- U+00C4 ISOlat1 - latin capital letter A with diaeresis -->
+<!ENTITY Aring "&#197;"> <!-- U+00C5 ISOlat1 - latin capital letter A with ring above = latin capital letter A ring -->
+<!ENTITY AElig "&#198;"> <!-- U+00C6 ISOlat1 - latin capital letter AE = latin capital ligature AE -->
+<!ENTITY Ccedil "&#199;"> <!-- U+00C7 ISOlat1 - latin capital letter C with cedilla -->
+<!ENTITY Egrave "&#200;"> <!-- U+00C8 ISOlat1 - latin capital letter E with grave -->
+<!ENTITY Eacute "&#201;"> <!-- U+00C9 ISOlat1 - latin capital letter E with acute -->
+<!ENTITY Ecirc "&#202;"> <!-- U+00CA ISOlat1 - latin capital letter E with circumflex -->
+<!ENTITY Euml "&#203;"> <!-- U+00CB ISOlat1 - latin capital letter E with diaeresis -->
+<!ENTITY Igrave "&#204;"> <!-- U+00CC ISOlat1 - latin capital letter I with grave -->
+<!ENTITY Iacute "&#205;"> <!-- U+00CD ISOlat1 - latin capital letter I with acute -->
+<!ENTITY Icirc "&#206;"> <!-- U+00CE ISOlat1 - latin capital letter I with circumflex -->
+<!ENTITY Iuml "&#207;"> <!-- U+00CF ISOlat1 - latin capital letter I with diaeresis -->
+<!ENTITY ETH "&#208;"> <!-- U+00D0 ISOlat1 - latin capital letter ETH -->
+<!ENTITY Ntilde "&#209;"> <!-- U+00D1 ISOlat1 - latin capital letter N with tilde -->
+<!ENTITY Ograve "&#210;"> <!-- U+00D2 ISOlat1 - latin capital letter O with grave -->
+<!ENTITY Oacute "&#211;"> <!-- U+00D3 ISOlat1 - latin capital letter O with acute -->
+<!ENTITY Ocirc "&#212;"> <!-- U+00D4 ISOlat1 - latin capital letter O with circumflex -->
+<!ENTITY Otilde "&#213;"> <!-- U+00D5 ISOlat1 - latin capital letter O with tilde -->
+<!ENTITY Ouml "&#214;"> <!-- U+00D6 ISOlat1 - latin capital letter O with diaeresis -->
+<!ENTITY times "&#215;"> <!-- U+00D7 ISOnum - multiplication sign -->
+<!ENTITY Oslash "&#216;"> <!-- U+00D8 ISOlat1 - latin capital letter O with stroke = latin capital letter O slash -->
+<!ENTITY Ugrave "&#217;"> <!-- U+00D9 ISOlat1 - latin capital letter U with grave -->
+<!ENTITY Uacute "&#218;"> <!-- U+00DA ISOlat1 - latin capital letter U with acute -->
+<!ENTITY Ucirc "&#219;"> <!-- U+00DB ISOlat1 - latin capital letter U with circumflex -->
+<!ENTITY Uuml "&#220;"> <!-- U+00DC ISOlat1 - latin capital letter U with diaeresis -->
+<!ENTITY Yacute "&#221;"> <!-- U+00DD ISOlat1 - latin capital letter Y with acute -->
+<!ENTITY THORN "&#222;"> <!-- U+00DE ISOlat1 - latin capital letter THORN -->
+<!ENTITY szlig "&#223;"> <!-- U+00DF ISOlat1 - latin small letter sharp s = ess-zed -->
+<!ENTITY agrave "&#224;"> <!-- U+00E0 ISOlat1 - latin small letter a with grave = latin small letter a grave -->
+<!ENTITY aacute "&#225;"> <!-- U+00E1 ISOlat1 - latin small letter a with acute -->
+<!ENTITY acirc "&#226;"> <!-- U+00E2 ISOlat1 - latin small letter a with circumflex -->
+<!ENTITY atilde "&#227;"> <!-- U+00E3 ISOlat1 - latin small letter a with tilde -->
+<!ENTITY auml "&#228;"> <!-- U+00E4 ISOlat1 - latin small letter a with diaeresis -->
+<!ENTITY aring "&#229;"> <!-- U+00E5 ISOlat1 - latin small letter a with ring above = latin small letter a ring -->
+<!ENTITY aelig "&#230;"> <!-- U+00E6 ISOlat1 - latin small letter ae = latin small ligature ae -->
+<!ENTITY ccedil "&#231;"> <!-- U+00E7 ISOlat1 - latin small letter c with cedilla -->
+<!ENTITY egrave "&#232;"> <!-- U+00E8 ISOlat1 - latin small letter e with grave -->
+<!ENTITY eacute "&#233;"> <!-- U+00E9 ISOlat1 - latin small letter e with acute -->
+<!ENTITY ecirc "&#234;"> <!-- U+00EA ISOlat1 - latin small letter e with circumflex -->
+<!ENTITY euml "&#235;"> <!-- U+00EB ISOlat1 - latin small letter e with diaeresis -->
+<!ENTITY igrave "&#236;"> <!-- U+00EC ISOlat1 - latin small letter i with grave -->
+<!ENTITY iacute "&#237;"> <!-- U+00ED ISOlat1 - latin small letter i with acute -->
+<!ENTITY icirc "&#238;"> <!-- U+00EE ISOlat1 - latin small letter i with circumflex -->
+<!ENTITY iuml "&#239;"> <!-- U+00EF ISOlat1 - latin small letter i with diaeresis -->
+<!ENTITY eth "&#240;"> <!-- U+00F0 ISOlat1 - latin small letter eth -->
+<!ENTITY ntilde "&#241;"> <!-- U+00F1 ISOlat1 - latin small letter n with tilde -->
+<!ENTITY ograve "&#242;"> <!-- U+00F2 ISOlat1 - latin small letter o with grave -->
+<!ENTITY oacute "&#243;"> <!-- U+00F3 ISOlat1 - latin small letter o with acute -->
+<!ENTITY ocirc "&#244;"> <!-- U+00F4 ISOlat1 - latin small letter o with circumflex -->
+<!ENTITY otilde "&#245;"> <!-- U+00F5 ISOlat1 - latin small letter o with tilde -->
+<!ENTITY ouml "&#246;"> <!-- U+00F6 ISOlat1 - latin small letter o with diaeresis -->
+<!ENTITY divide "&#247;"> <!-- U+00F7 ISOnum - division sign -->
+<!ENTITY oslash "&#248;"> <!-- U+00F8 ISOlat1 - latin small letter o with stroke = latin small letter o slash -->
+<!ENTITY ugrave "&#249;"> <!-- U+00F9 ISOlat1 - latin small letter u with grave -->
+<!ENTITY uacute "&#250;"> <!-- U+00FA ISOlat1 - latin small letter u with acute -->
+<!ENTITY ucirc "&#251;"> <!-- U+00FB ISOlat1 - latin small letter u with circumflex -->
+<!ENTITY uuml "&#252;"> <!-- U+00FC ISOlat1 - latin small letter u with diaeresis -->
+<!ENTITY yacute "&#253;"> <!-- U+00FD ISOlat1 - latin small letter y with acute -->
+<!ENTITY thorn "&#254;"> <!-- U+00FE ISOlat1 - latin small letter thorn -->
+<!ENTITY yuml "&#255;"> <!-- U+00FF ISOlat1 - latin small letter y with diaeresis -->
+
+<!-- Latin Extended-A -->
+<!ENTITY OElig "&#338;"> <!-- U+0152 ISOlat2 - latin capital ligature OE -->
+<!ENTITY oelig "&#339;"> <!-- U+0153 ISOlat2 - latin small ligature oe -->
+
+<!-- ligature is a misnomer, this is a separate character in some languages -->
+<!ENTITY Scaron "&#352;"> <!-- U+0160 ISOlat2 - latin capital letter S with caron -->
+<!ENTITY scaron "&#353;"> <!-- U+0161 ISOlat2 - latin small letter s with caron -->
+<!ENTITY Yuml "&#376;"> <!-- U+0178 ISOlat2 - latin capital letter Y with diaeresis -->
+
+<!-- Spacing Modifier Letters -->
+<!ENTITY circ "&#710;"> <!-- U+02C6 ISOpub - modifier letter circumflex accent -->
+<!ENTITY tilde "&#732;"> <!-- U+02DC ISOdia - small tilde -->
+
+<!-- General Punctuation -->
+<!ENTITY ensp "&#8194;"> <!-- U+2002 ISOpub - en space -->
+<!ENTITY emsp "&#8195;"> <!-- U+2003 ISOpub - em space -->
+<!ENTITY thinsp "&#8201;"> <!-- U+2009 ISOpub - thin space -->
+<!ENTITY zwnj "&#8204;"> <!-- U+200C RFC 2070 - zero width non-joiner -->
+<!ENTITY zwj "&#8205;"> <!-- U+200D RFC 2070 - zero width joiner -->
+<!ENTITY lrm "&#8206;"> <!-- U+200E RFC 2070 - left-to-right mark -->
+<!ENTITY rlm "&#8207;"> <!-- U+200F RFC 2070 - right-to-left mark -->
+<!ENTITY ndash "&#8211;"> <!-- U+2013 ISOpub - en dash -->
+<!ENTITY mdash "&#8212;"> <!-- U+2014 ISOpub - em dash -->
+<!ENTITY lsquo "&#8216;"> <!-- U+2018 ISOnum - left single quotation mark -->
+<!ENTITY rsquo "&#8217;"> <!-- U+2019 ISOnum - right single quotation mark -->
+<!ENTITY sbquo "&#8218;"> <!-- U+201A NEW - single low-9 quotation mark -->
+<!ENTITY ldquo "&#8220;"> <!-- U+201C ISOnum - left double quotation mark -->
+<!ENTITY rdquo "&#8221;"> <!-- U+201D ISOnum - right double quotation mark, -->
+<!ENTITY bdquo "&#8222;"> <!-- U+201E NEW - double low-9 quotation mark -->
+<!ENTITY dagger "&#8224;"> <!-- U+2020 ISOpub - dagger -->
+<!ENTITY Dagger "&#8225;"> <!-- U+2021 ISOpub - double dagger -->
+<!ENTITY permil "&#8240;"> <!-- U+2030 ISOtech - per mille sign -->
+<!ENTITY lsaquo "&#8249;"> <!-- U+2039 ISO prop. - single left-pointing angle quotation mark -->
+
+<!-- lsaquo is proposed but not yet ISO standardized -->
+<!ENTITY rsaquo "&#8250;"> <!-- U+203A ISO prop. - single right-pointing angle quotation mark -->
+
+<!-- rsaquo is proposed but not yet ISO standardized -->
+<!ENTITY euro "&#8364;"> <!-- U+20AC NEW - euro sign -->
+
+<!-- Latin Extended-B -->
+<!ENTITY fnof "&#402;"> <!-- U+0192 ISOtech - latin small f with hook = function = florin -->
+
+<!-- Greek -->
+<!ENTITY Alpha "&#913;"> <!-- U+0391 - greek capital letter alpha -->
+<!ENTITY Beta "&#914;"> <!-- U+0392 - greek capital letter beta -->
+<!ENTITY Gamma "&#915;"> <!-- U+0393 ISOgrk3 - greek capital letter gamma -->
+<!ENTITY Delta "&#916;"> <!-- U+0394 ISOgrk3 - greek capital letter delta -->
+<!ENTITY Epsilon "&#917;"> <!-- U+0395 - greek capital letter epsilon -->
+<!ENTITY Zeta "&#918;"> <!-- U+0396 - greek capital letter zeta -->
+<!ENTITY Eta "&#919;"> <!-- U+0397 - greek capital letter eta -->
+<!ENTITY Theta "&#920;"> <!-- U+0398 ISOgrk3 - greek capital letter theta -->
+<!ENTITY Iota "&#921;"> <!-- U+0399 - greek capital letter iota -->
+<!ENTITY Kappa "&#922;"> <!-- U+039A - greek capital letter kappa -->
+<!ENTITY Lambda "&#923;"> <!-- U+039B ISOgrk3 - greek capital letter lambda -->
+<!ENTITY Mu "&#924;"> <!-- U+039C - greek capital letter mu -->
+<!ENTITY Nu "&#925;"> <!-- U+039D - greek capital letter nu -->
+<!ENTITY Xi "&#926;"> <!-- U+039E ISOgrk3 - greek capital letter xi -->
+<!ENTITY Omicron "&#927;"> <!-- U+039F - greek capital letter omicron -->
+<!ENTITY Pi "&#928;"> <!-- U+03A0 ISOgrk3 - greek capital letter pi -->
+<!ENTITY Rho "&#929;"> <!-- U+03A1 - greek capital letter rho -->
+<!ENTITY Sigma "&#931;"> <!-- U+03A3 ISOgrk3 - greek capital letter sigma -->
+<!ENTITY Tau "&#932;"> <!-- U+03A4 - greek capital letter tau -->
+<!ENTITY Upsilon "&#933;"> <!-- U+03A5 ISOgrk3 - greek capital letter upsilon -->
+<!ENTITY Phi "&#934;"> <!-- U+03A6 ISOgrk3 - greek capital letter phi -->
+<!ENTITY Chi "&#935;"> <!-- U+03A7 - greek capital letter chi -->
+<!ENTITY Psi "&#936;"> <!-- U+03A8 ISOgrk3 - greek capital letter psi -->
+<!ENTITY Omega "&#937;"> <!-- U+03A9 ISOgrk3 - greek capital letter omega -->
+<!ENTITY alpha "&#945;"> <!-- U+03B1 ISOgrk3 - greek small letter alpha -->
+<!ENTITY beta "&#946;"> <!-- U+03B2 ISOgrk3 - greek small letter beta -->
+<!ENTITY gamma "&#947;"> <!-- U+03B3 ISOgrk3 - greek small letter gamma -->
+<!ENTITY delta "&#948;"> <!-- U+03B4 ISOgrk3 - greek small letter delta -->
+<!ENTITY epsilon "&#949;"> <!-- U+03B5 ISOgrk3 - greek small letter epsilon -->
+<!ENTITY zeta "&#950;"> <!-- U+03B6 ISOgrk3 - greek small letter zeta -->
+<!ENTITY eta "&#951;"> <!-- U+03B7 ISOgrk3 - greek small letter eta -->
+<!ENTITY theta "&#952;"> <!-- U+03B8 ISOgrk3 - greek small letter theta -->
+<!ENTITY iota "&#953;"> <!-- U+03B9 ISOgrk3 - greek small letter iota -->
+<!ENTITY kappa "&#954;"> <!-- U+03BA ISOgrk3 - greek small letter kappa -->
+<!ENTITY lambda "&#955;"> <!-- U+03BB ISOgrk3 - greek small letter lambda -->
+<!ENTITY mu "&#956;"> <!-- U+03BC ISOgrk3 - greek small letter mu -->
+<!ENTITY nu "&#957;"> <!-- U+03BD ISOgrk3 - greek small letter nu -->
+<!ENTITY xi "&#958;"> <!-- U+03BE ISOgrk3 - greek small letter xi -->
+<!ENTITY omicron "&#959;"> <!-- U+03BF NEW - greek small letter omicron -->
+<!ENTITY pi "&#960;"> <!-- U+03C0 ISOgrk3 - greek small letter pi -->
+<!ENTITY rho "&#961;"> <!-- U+03C1 ISOgrk3 - greek small letter rho -->
+<!ENTITY sigmaf "&#962;"> <!-- U+03C2 ISOgrk3 - greek small letter final sigma -->
+<!ENTITY sigma "&#963;"> <!-- U+03C3 ISOgrk3 - greek small letter sigma -->
+<!ENTITY tau "&#964;"> <!-- U+03C4 ISOgrk3 - greek small letter tau -->
+<!ENTITY upsilon "&#965;"> <!-- U+03C5 ISOgrk3 - greek small letter upsilon -->
+<!ENTITY phi "&#966;"> <!-- U+03C6 ISOgrk3 - greek small letter phi -->
+<!ENTITY chi "&#967;"> <!-- U+03C7 ISOgrk3 - greek small letter chi -->
+<!ENTITY psi "&#968;"> <!-- U+03C8 ISOgrk3 - greek small letter psi -->
+<!ENTITY omega "&#969;"> <!-- U+03C9 ISOgrk3 - greek small letter omega -->
+<!ENTITY thetasym "&#977;"> <!-- U+03D1 NEW - greek small letter theta symbol -->
+<!ENTITY upsih "&#978;"> <!-- U+03D2 NEW - greek upsilon with hook symbol -->
+<!ENTITY piv "&#982;"> <!-- U+03D6 ISOgrk3 - greek pi symbol -->
+
+<!-- General Punctuation -->
+<!ENTITY bull "&#8226;"> <!-- U+2022 ISOpub - bullet = black small circle -->
+<!ENTITY hellip "&#8230;"> <!-- U+2026 ISOpub - horizontal ellipsis = three dot leader -->
+<!ENTITY prime "&#8242;"> <!-- U+2032 ISOtech - prime = minutes = feet -->
+<!ENTITY Prime "&#8243;"> <!-- U+2033 ISOtech - double prime = seconds = inches -->
+<!ENTITY oline "&#8254;"> <!-- U+203E NEW - overline = spacing overscore -->
+<!ENTITY frasl "&#8260;"> <!-- U+2044 NEW - fraction slash -->
+
+<!-- Letterlike Symbols -->
+<!ENTITY weierp "&#8472;"> <!-- U+2118 ISOamso - script capital P = power set = Weierstrass p -->
+<!ENTITY image "&#8465;"> <!-- U+2111 ISOamso - blackletter capital I = imaginary part -->
+<!ENTITY real "&#8476;"> <!-- U+211C ISOamso - blackletter capital R = real part symbol -->
+<!ENTITY trade "&#8482;"> <!-- U+2122 ISOnum - trade mark sign -->
+<!ENTITY alefsym "&#8501;"> <!-- U+2135 NEW - alef symbol = first transfinite cardinal -->
+
+<!-- Arrows -->
+<!ENTITY larr "&#8592;"> <!-- U+2190 ISOnum - leftwards arrow -->
+<!ENTITY uarr "&#8593;"> <!-- U+2191 ISOnum - upwards arrow -->
+<!ENTITY rarr "&#8594;"> <!-- U+2192 ISOnum - rightwards arrow -->
+<!ENTITY darr "&#8595;"> <!-- U+2193 ISOnum - downwards arrow -->
+<!ENTITY harr "&#8596;"> <!-- U+2194 ISOamsa - left right arrow -->
+<!ENTITY crarr "&#8629;"> <!-- U+21B5 NEW - downwards arrow with corner leftwards = carriage return -->
+<!ENTITY lArr "&#8656;"> <!-- U+21D0 ISOtech - leftwards double arrow -->
+<!ENTITY uArr "&#8657;"> <!-- U+21D1 ISOamsa - upwards double arrow -->
+<!ENTITY rArr "&#8658;"> <!-- U+21D2 ISOtech - rightwards double arrow -->
+<!ENTITY dArr "&#8659;"> <!-- U+21D3 ISOamsa - downwards double arrow -->
+<!ENTITY hArr "&#8660;"> <!-- U+21D4 ISOamsa - left right double arrow -->
+
+<!-- Mathematical Operators -->
+<!ENTITY forall "&#8704;"> <!-- U+2200 ISOtech - for all -->
+<!ENTITY part "&#8706;"> <!-- U+2202 ISOtech - partial differential -->
+<!ENTITY exist "&#8707;"> <!-- U+2203 ISOtech - there exists -->
+<!ENTITY empty "&#8709;"> <!-- U+2205 ISOamso - empty set = null set = diameter -->
+<!ENTITY nabla "&#8711;"> <!-- U+2207 ISOtech - nabla = backward difference -->
+<!ENTITY isin "&#8712;"> <!-- U+2208 ISOtech - element of -->
+<!ENTITY notin "&#8713;"> <!-- U+2209 ISOtech - not an element of -->
+<!ENTITY ni "&#8715;"> <!-- U+220B ISOtech - contains as member -->
+<!ENTITY prod "&#8719;"> <!-- U+220F ISOamsb - n-ary product = product sign -->
+<!ENTITY sum "&#8721;"> <!-- U+2211 ISOamsb - n-ary sumation -->
+<!ENTITY minus "&#8722;"> <!-- U+2212 ISOtech - minus sign -->
+<!ENTITY lowast "&#8727;"> <!-- U+2217 ISOtech - asterisk operator -->
+<!ENTITY radic "&#8730;"> <!-- U+221A ISOtech - square root = radical sign -->
+<!ENTITY prop "&#8733;"> <!-- U+221D ISOtech - proportional to -->
+<!ENTITY infin "&#8734;"> <!-- U+221E ISOtech - infinity -->
+<!ENTITY ang "&#8736;"> <!-- U+2220 ISOamso - angle -->
+<!ENTITY and "&#8743;"> <!-- U+2227 ISOtech - logical and = wedge -->
+<!ENTITY or "&#8744;"> <!-- U+2228 ISOtech - logical or = vee -->
+<!ENTITY cap "&#8745;"> <!-- U+2229 ISOtech - intersection = cap -->
+<!ENTITY cup "&#8746;"> <!-- U+222A ISOtech - union = cup -->
+<!ENTITY int "&#8747;"> <!-- U+222B ISOtech - integral -->
+<!ENTITY there4 "&#8756;"> <!-- U+2234 ISOtech - therefore -->
+<!ENTITY sim "&#8764;"> <!-- U+223C ISOtech - tilde operator = varies with = similar to -->
+<!ENTITY cong "&#8773;"> <!-- U+2245 ISOtech - approximately equal to -->
+<!ENTITY asymp "&#8776;"> <!-- U+2248 ISOamsr - almost equal to = asymptotic to -->
+<!ENTITY ne "&#8800;"> <!-- U+2260 ISOtech - not equal to -->
+<!ENTITY equiv "&#8801;"> <!-- U+2261 ISOtech - identical to -->
+<!ENTITY le "&#8804;"> <!-- U+2264 ISOtech - less-than or equal to -->
+<!ENTITY ge "&#8805;"> <!-- U+2265 ISOtech - greater-than or equal to -->
+<!ENTITY sub "&#8834;"> <!-- U+2282 ISOtech - subset of -->
+<!ENTITY sup "&#8835;"> <!-- U+2283 ISOtech - superset of -->
+<!ENTITY nsub "&#8836;"> <!-- U+2284 ISOamsn - not a subset of -->
+<!ENTITY sube "&#8838;"> <!-- U+2286 ISOtech - subset of or equal to -->
+<!ENTITY supe "&#8839;"> <!-- U+2287 ISOtech - superset of or equal to -->
+<!ENTITY oplus "&#8853;"> <!-- U+2295 ISOamsb - circled plus = direct sum -->
+<!ENTITY otimes "&#8855;"> <!-- U+2297 ISOamsb - circled times = vector product -->
+<!ENTITY perp "&#8869;"> <!-- U+22A5 ISOtech - up tack = orthogonal to = perpendicular -->
+<!ENTITY sdot "&#8901;"> <!-- U+22C5 ISOamsb - dot operator -->
+
+<!-- Miscellaneous Technical -->
+<!ENTITY lceil "&#8968;"> <!-- U+2308 ISOamsc - left ceiling = apl upstile -->
+<!ENTITY rceil "&#8969;"> <!-- U+2309 ISOamsc - right ceiling -->
+<!ENTITY lfloor "&#8970;"> <!-- U+230A ISOamsc - left floor = apl downstile -->
+<!ENTITY rfloor "&#8971;"> <!-- U+230B ISOamsc - right floor -->
+<!ENTITY lang "&#9001;"> <!-- U+2329 ISOtech - left-pointing angle bracket = bra -->
+<!ENTITY rang "&#9002;"> <!-- U+232A ISOtech - right-pointing angle bracket = ket -->
+
+<!-- Geometric Shapes -->
+<!ENTITY loz "&#9674;"> <!-- U+25CA ISOpub - lozenge -->
+
+<!-- Miscellaneous Symbols -->
+<!ENTITY spades "&#9824;"> <!-- U+2660 ISOpub - black spade suit -->
+<!ENTITY clubs "&#9827;"> <!-- U+2663 ISOpub - black club suit = shamrock -->
+<!ENTITY hearts "&#9829;"> <!-- U+2665 ISOpub - black heart suit = valentine -->
+<!ENTITY diams "&#9830;"> <!-- U+2666 ISOpub - black diamond suit -->
diff --git a/src/resources/entities/datatypes.dtd b/src/resources/entities/datatypes.dtd
new file mode 100755
index 0000000000..48d7fade8c
--- /dev/null
+++ b/src/resources/entities/datatypes.dtd
@@ -0,0 +1,195 @@
+<!-- DTD for XML Schemas: Part 2: Datatypes -->
+<!-- Id: datatypes.dtd,v 1.14 2000/10/23 08:58:09 ht Exp -->
+
+<!-- This DTD cannot be used on its own, it is intended only for incorporation
+ in XMLSchema.dtd, q.v. -->
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % simpleType "%p;simpleType">
+<!ENTITY % restriction "%p;restriction">
+<!ENTITY % list "%p;list">
+<!ENTITY % union "%p;union">
+<!ENTITY % maxExclusive "%p;maxExclusive">
+<!ENTITY % minExclusive "%p;minExclusive">
+<!ENTITY % maxInclusive "%p;maxInclusive">
+<!ENTITY % minInclusive "%p;minInclusive">
+<!ENTITY % precision "%p;precision">
+<!ENTITY % scale "%p;scale">
+<!ENTITY % length "%p;length">
+<!ENTITY % minLength "%p;minLength">
+<!ENTITY % maxLength "%p;maxLength">
+<!ENTITY % enumeration "%p;enumeration">
+<!ENTITY % whiteSpace "%p;whiteSpace">
+<!ENTITY % pattern "%p;pattern">
+<!ENTITY % encoding "%p;encoding">
+<!ENTITY % period "%p;period">
+<!ENTITY % duration "%p;duration">
+
+<!-- Customisation entities for the ATTLIST of each element type.
+ Define one of these if your schema takes advantage of the
+ anyAttribute='##other' in the schema for schemas -->
+
+<!ENTITY % simpleTypeAttrs "">
+<!ENTITY % restrictionAttrs "">
+<!ENTITY % listAttrs "">
+<!ENTITY % unionAttrs "">
+<!ENTITY % simpleTypeAttrs "">
+<!ENTITY % maxExclusiveAttrs "">
+<!ENTITY % minExclusiveAttrs "">
+<!ENTITY % maxInclusiveAttrs "">
+<!ENTITY % minInclusiveAttrs "">
+<!ENTITY % precisionAttrs "">
+<!ENTITY % scaleAttrs "">
+<!ENTITY % lengthAttrs "">
+<!ENTITY % minLengthAttrs "">
+<!ENTITY % maxLengthAttrs "">
+<!ENTITY % enumerationAttrs "">
+<!ENTITY % whiteSpaceAttrs "">
+<!ENTITY % patternAttrs "">
+<!ENTITY % encodingAttrs "">
+<!ENTITY % periodAttrs "">
+<!ENTITY % durationAttrs "">
+<!ENTITY % appinfoAttrs "">
+<!ENTITY % documentationAttrs "">
+
+<!-- Define some entities for informative use as attribute types -->
+<!ENTITY % URIref "CDATA">
+<!ENTITY % XPathExpr "CDATA">
+<!ENTITY % QName "NMTOKEN">
+<!ENTITY % QNames "NMTOKENS">
+<!ENTITY % NCName "NMTOKEN">
+<!ENTITY % nonNegativeInteger "NMTOKEN">
+<!ENTITY % boolean "(true|false)">
+
+<!-- Note that the use of 'facet' below is less restrictive than is
+ really intended: There should in fact be no more than one of each of
+ minInclusive, minExclusive, maxInclusive, maxExclusive,
+ precision, scale,
+ length, maxLength, minLength, encoding, period within datatype,
+ and the min- and max- variants of Inclusive and Exclusive are
+ mutually exclusive.
+ On the other hand, pattern and enumeration may repeat -->
+<!ENTITY % minBound "(%minInclusive; | %minExclusive;)">
+<!ENTITY % maxBound "(%maxInclusive; | %maxExclusive;)">
+<!ENTITY % bounds "%minBound; | %maxBound;">
+<!ENTITY % numeric "%precision; | %scale;">
+<!ENTITY % ordered "%bounds; | %numeric;">
+<!ENTITY % unordered
+ "%pattern; | %enumeration; | %whiteSpace; | %length; | %maxLength; | %minLength;
+ | %encoding; | %period; | %duration;">
+<!ENTITY % facet "%ordered; | %unordered;">
+<!ENTITY % facetAttr "value CDATA #REQUIRED">
+<!ENTITY % fixedAttr "fixed %boolean; #IMPLIED">
+<!ENTITY % facetModel "(%annotation;)?">
+<!ELEMENT %simpleType; ((%annotation;)?, (%restriction; | %list; | %union;))>
+<!ATTLIST %simpleType;
+ name %NCName; #IMPLIED
+ id ID #IMPLIED
+ %simpleTypeAttrs;>
+<!-- name is required at top level -->
+<!ELEMENT %restriction; ((%annotation;)?,
+ (%restriction1; |
+ ((%simpleType;)?,(%facet;)*)),
+ (%attrDecls;))>
+<!ATTLIST %restriction;
+ base %QName; #IMPLIED
+ id ID #IMPLIED
+ %restrictionAttrs;>
+<!-- base and simpleType child are mutually exclusive, one is required -->
+<!-- restriction is shared between simpleType and simpleContent and -->
+<!-- complexContent (in XMLSchema.xsd). restriction1 is for the latter -->
+<!-- cases, when this is restricting a complex type, as is attrDecls -->
+<!ELEMENT %list; ((%annotation;)?,(%simpleType;)?)>
+<!ATTLIST %list;
+ itemType %QName; #IMPLIED
+ id ID #IMPLIED
+ %listAttrs;>
+<!-- itemType and simpleType child are mutually exclusive, one is required -->
+<!ELEMENT %union; ((%annotation;)?,(%simpleType;)*)>
+<!ATTLIST %union;
+ id ID #IMPLIED
+ memberTypes %QNames; #IMPLIED
+ %unionAttrs;>
+<!-- At least one item in memberTypes or one simpleType child is required -->
+
+<!ELEMENT %maxExclusive; %facetModel;>
+<!ATTLIST %maxExclusive;
+ %facetAttr;
+ %fixedAttr;
+ %maxExclusiveAttrs;>
+<!ELEMENT %minExclusive; %facetModel;>
+<!ATTLIST %minExclusive;
+ %facetAttr;
+ %fixedAttr;
+ %minExclusiveAttrs;>
+
+<!ELEMENT %maxInclusive; %facetModel;>
+<!ATTLIST %maxInclusive;
+ %facetAttr;
+ %fixedAttr;
+ %maxInclusiveAttrs;>
+<!ELEMENT %minInclusive; %facetModel;>
+<!ATTLIST %minInclusive;
+ %facetAttr;
+ %fixedAttr;
+ %minInclusiveAttrs;>
+
+<!ELEMENT %precision; %facetModel;>
+<!ATTLIST %precision;
+ %facetAttr;
+ %fixedAttr;
+ %precisionAttrs;>
+<!ELEMENT %scale; %facetModel;>
+<!ATTLIST %scale;
+ %facetAttr;
+ %fixedAttr;
+ %scaleAttrs;>
+
+<!ELEMENT %length; %facetModel;>
+<!ATTLIST %length;
+ %facetAttr;
+ %fixedAttr;
+ %lengthAttrs;>
+<!ELEMENT %minLength; %facetModel;>
+<!ATTLIST %minLength;
+ %facetAttr;
+ %fixedAttr;
+ %minLengthAttrs;>
+<!ELEMENT %maxLength; %facetModel;>
+<!ATTLIST %maxLength;
+ %facetAttr;
+ %fixedAttr;
+ %maxLengthAttrs;>
+
+<!-- This one can be repeated -->
+<!ELEMENT %enumeration; %facetModel;>
+<!ATTLIST %enumeration;
+ %facetAttr;
+ %enumerationAttrs;>
+
+<!ELEMENT %whiteSpace; %facetModel;>
+<!ATTLIST %whiteSpace;
+ %facetAttr;
+ %whiteSpaceAttrs;>
+
+<!-- This one can be repeated -->
+<!ELEMENT %pattern; %facetModel;>
+<!ATTLIST %pattern;
+ %facetAttr;
+ %patternAttrs;>
+
+<!ELEMENT %encoding; %facetModel;>
+<!ATTLIST %encoding;
+ %facetAttr;
+ %fixedAttr;
+ %encodingAttrs;>
+<!ELEMENT %period; %facetModel;>
+<!ATTLIST %period;
+ %facetAttr;
+ %fixedAttr;
+ %periodAttrs;>
+<!ELEMENT %duration; %facetModel;>
+<!ATTLIST %duration;
+ %facetAttr;
+ %fixedAttr;
+ %durationAttrs;>
diff --git a/src/resources/entities/document-v10.dtd b/src/resources/entities/document-v10.dtd
new file mode 100755
index 0000000000..78c7d877a3
--- /dev/null
+++ b/src/resources/entities/document-v10.dtd
@@ -0,0 +1,555 @@
+<!-- ===================================================================
+
+ Apache Documentation DTD (Version 1.0)
+
+PURPOSE:
+ This DTD was developed to create a simple yet powerful document
+ type for software documentation for use with the Apache projects.
+ It is an XML-compliant DTD and it's maintained by the Apache XML
+ project.
+
+TYPICAL INVOCATION:
+
+ <!DOCTYPE document PUBLIC
+ "-//APACHE//DTD Documentation Vx.yz//EN"
+ "http://xml.apache.org/DTD/document-vxyz.dtd">
+
+ where
+
+ x := major version
+ y := minor version
+ z := status identifier (optional)
+
+NOTES:
+ Many of the design patterns used in this DTD were take from the
+ W3C XML Specification DTD edited by Eve Maler <elm@arbortext.com>.
+
+ Where possible, great care has been used to reutilize HTML tag
+ names to reduce learning efforts and to allow HTML editors to be
+ used for complex authorings like tables and lists.
+
+AUTHORS:
+ Stefano Mazzocchi <stefano@apache.org>
+
+FIXME:
+ - how can we include char entities without hardwiring them?
+ - should "form" tags be included?
+ - should all style-free HTML 4.0 markup tags be included?
+ - how do we handle the idea of "soft" xlinks?
+ - should we add "soft" links to images?
+
+CHANGE HISTORY:
+ 19991121 Initial version. (SM)
+ 19991123 Replaced "res" with more standard "strong" for emphasis. (SM)
+ 19991124 Added "fork" element for window forking behavior. (SM)
+ 19991124 Added "img-inline" element to separate from "img". (SM)
+ 19991129 Removed "affiliation" from "author". (SM)
+ 19991129 Made "author" empty and moved "name|email" as attributes. (SM)
+ 19991215 Simplified table section. (SM)
+ 19991215 Changed "img-block" in more friendly "figure". (SM)
+ 20000125 Added the "icon" image. (SM)
+ 20000126 Allowed "anchor" in all levels. (SM)
+ 20000404 Removed the "role" attribute from common-xxx.att. (SM)
+ 20000815 Allowed "code" inside "strong" and "em". (SM)
+
+COPYRIGHT:
+ Copyright (c) 1999-2000 The Apache Software Foundation.
+
+ Permission to copy in any form is granted provided this notice is
+ included in all copies. Permission to redistribute is granted
+ provided this file is distributed untouched in all its parts and
+ included files.
+
+==================================================================== -->
+
+
+
+
+<!-- =============================================================== -->
+<!-- Common character entities (included from external file) -->
+<!-- =============================================================== -->
+
+<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
+ possibly using public identifiers of ISO latin char sets -->
+<!ENTITY % charEntity SYSTEM "characters.ent">
+%charEntity;
+
+
+
+
+<!-- =============================================================== -->
+<!-- Userful entitieis for increased DTD readability -->
+<!-- =============================================================== -->
+
+<!ENTITY % text "#PCDATA">
+
+
+<!-- =============================================================== -->
+<!-- Entities for general XML compliance -->
+<!-- =============================================================== -->
+
+<!-- Common attributes
+ Every element has an ID attribute (sometimes required,
+ but usually optional) for links. %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
+ xml:lang NMTOKEN #IMPLIED'>
+<!ENTITY % common-idreq.att
+ 'id ID #REQUIRED
+ xml:lang NMTOKEN #IMPLIED'>
+
+
+<!-- xml:space attribute ===============================================
+ Indicates that the element contains white space
+ that the formatter or other application should retain,
+ as appropriate to its function.
+==================================================================== -->
+<!ENTITY % xmlspace.att
+ 'xml:space (default|preserve) #FIXED "preserve"'>
+
+
+<!-- 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'>
+
+
+<!-- =============================================================== -->
+<!-- Entities for XLink compliance -->
+<!-- =============================================================== -->
+
+<!ENTITY % xlink-simple.att
+ 'type (simple|extended|locator|arc) #FIXED "simple"
+ href CDATA #IMPLIED
+ role CDATA #IMPLIED
+ title CDATA #IMPLIED '>
+<!-- 'xmlns CDATA #FIXED "http://www.w3.org/XML/XLink/0.9" -->
+<!-- FIXME: brain-dead IE5 has broken support for
+ namespace validation and since I use it for editing
+ I remove this for now -->
+
+<!ENTITY % xlink-user-replace.att
+ 'show (new|parsed|replace) #FIXED "replace"
+ actuate (user|auto) #FIXED "user" '>
+
+<!ENTITY % xlink-user-new.att
+ 'show (new|parsed|replace) #FIXED "new"
+ actuate (user|auto) #FIXED "user" '>
+
+<!ENTITY % xlink-auto-parsed.att
+ 'show (new|parsed|replace) #FIXED "parsed"
+ actuate (user|auto) #FIXED "auto" '>
+
+<!-- FIXME (SM): XLink doesn't yet cover the idea of soft links so
+ introducing it here using the same namespace is _somewhat_
+ illegal. Should we create it own namespace?
+-->
+<!ENTITY % xlink-soft.att
+ 'mode (hard|soft) #FIXED "soft" '>
+
+
+<!-- =============================================================== -->
+<!-- Entities for general usage -->
+<!-- =============================================================== -->
+
+
+<!-- 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'>
+
+
+
+<!-- Title attributes ==================================================
+ Indicates that the element requires to have a title.
+==================================================================== -->
+<!ENTITY % title.att
+ 'title CDATA #REQUIRED'>
+
+
+
+<!-- Name attributes ==================================================
+ Indicates that the element requires to have a name.
+==================================================================== -->
+<!ENTITY % name.att
+ 'name CDATA #REQUIRED'>
+
+
+
+<!-- Email attributes ==================================================
+ Indicates that the element requires to have an email.
+==================================================================== -->
+<!ENTITY % email.att
+ 'email CDATA #REQUIRED'>
+
+
+
+
+
+<!-- =============================================================== -->
+<!-- General definitions -->
+<!-- =============================================================== -->
+
+<!-- A person is a general human entity -->
+<!ELEMENT person EMPTY>
+<!ATTLIST person %common.att;
+ %name.att;
+ %email.att;>
+
+
+
+
+<!-- =============================================================== -->
+<!-- Content definitions -->
+<!-- =============================================================== -->
+
+<!ENTITY % local.content.mix "">
+
+<!ENTITY % markup "strong|em|code|sub|sup">
+
+<!ENTITY % links "link|connect|jump|fork|anchor">
+
+<!ENTITY % special "br|img|icon">
+
+<!ENTITY % link-content.mix "%text;|%markup;|%special;%local.content.mix;">
+
+<!ENTITY % content.mix "%link-content.mix;|%links;">
+
+ <!-- ==================================================== -->
+ <!-- Phrase Markup -->
+ <!-- ==================================================== -->
+
+ <!-- Code (typically monospaced) -->
+ <!ELEMENT code (%text;)>
+ <!ATTLIST code %common.att;>
+
+ <!-- Strong (typically bold) -->
+ <!ELEMENT strong (%text;|code)*>
+ <!ATTLIST strong %common.att;>
+
+ <!-- Emphasis (typically italic) -->
+ <!ELEMENT em (%text;|code)*>
+ <!ATTLIST em %common.att;>
+
+ <!-- Superscript (typically smaller and higher) -->
+ <!ELEMENT sup (%text;)>
+ <!ATTLIST sup %common.att;>
+
+ <!-- Subscript (typically smaller and lower) -->
+ <!ELEMENT sub (%text;)>
+ <!ATTLIST sub %common.att;>
+
+ <!-- FIXME (SM): should we add these HTML 4.0 markups
+ which are style-free?
+
+ -dfn
+ -samp
+ -kbd
+ -var
+ -cite
+ -abbr
+ -acronym
+
+ -->
+
+ <!-- ==================================================== -->
+ <!-- Hypertextual Links -->
+ <!-- ==================================================== -->
+
+ <!-- hard replacing link (equivalent of <a ...>) -->
+ <!ELEMENT link (%link-content.mix;)*>
+ <!ATTLIST link %common.att;
+ %xlink-simple.att;
+ %xlink-user-replace.att;>
+
+ <!-- Hard window replacing link (equivalent of <a ... target="_top">) -->
+ <!ELEMENT jump (%link-content.mix;)*>
+ <!ATTLIST jump %common.att;
+ %xlink-simple.att;
+ %xlink-user-new.att;>
+
+ <!-- Hard window forking link (equivalent of <a ... target="_new">) -->
+ <!ELEMENT fork (%link-content.mix;)*>
+ <!ATTLIST fork %common.att;
+ %xlink-simple.att;
+ %xlink-user-new.att;>
+
+ <!-- Anchor point (equivalent of <a name="...">) -->
+ <!ELEMENT anchor EMPTY>
+ <!ATTLIST anchor %common-idreq.att;>
+
+ <!-- Soft link between processed pages (no equivalent in HTML) -->
+ <!ELEMENT connect (%link-content.mix;)*>
+ <!ATTLIST connect %common.att;
+ %xlink-simple.att;
+ %xlink-user-replace.att;
+ %xlink-soft.att;>
+
+ <!-- ==================================================== -->
+ <!-- Specials -->
+ <!-- ==================================================== -->
+
+ <!-- Breakline Object (typically forces line break) -->
+ <!ELEMENT br EMPTY>
+ <!ATTLIST br %common.att;>
+
+ <!-- Image Object (typically an inlined image) -->
+ <!-- FIXME (SM): should we have the notion of soft links even here
+ for inlined objects? -->
+ <!ELEMENT img EMPTY>
+ <!ATTLIST img src CDATA #REQUIRED
+ alt CDATA #REQUIRED
+ height CDATA #IMPLIED
+ width CDATA #IMPLIED
+ usemap CDATA #IMPLIED
+ ismap (ismap) #IMPLIED
+ %common.att;>
+
+ <!-- Image Icon (typically an inlined image placed as graphical item) -->
+ <!-- FIXME (SM): should we have the notion of soft links even here
+ for inlined objects? -->
+ <!ELEMENT icon EMPTY>
+ <!ATTLIST icon src CDATA #REQUIRED
+ alt CDATA #REQUIRED
+ height CDATA #IMPLIED
+ width CDATA #IMPLIED
+ %common.att;>
+
+
+
+
+<!-- =============================================================== -->
+<!-- Blocks definitions -->
+<!-- =============================================================== -->
+
+<!ENTITY % local.blocks "">
+
+<!ENTITY % local.lists "">
+
+<!ENTITY % paragraphs "p|source|note|fixme|figure">
+
+<!ENTITY % tables "table">
+
+<!ENTITY % lists "ol|ul|sl|dl %local.lists;">
+
+<!ENTITY % blocks "anchor|%paragraphs;|%tables;|%lists; %local.blocks;">
+
+ <!-- ==================================================== -->
+ <!-- Paragraphs -->
+ <!-- ==================================================== -->
+
+ <!-- Text Paragraph (normally vertically space delimited) -->
+ <!ELEMENT p (%content.mix;)*>
+ <!ATTLIST p %common.att;>
+
+ <!-- Source Paragraph (normally space is preserved) -->
+ <!ELEMENT source (%content.mix;)*>
+ <!ATTLIST source %common.att;
+ %xmlspace.att;>
+
+ <!-- Note Paragraph (normally shown encapsulated) -->
+ <!ELEMENT note (%content.mix;)*>
+ <!ATTLIST note %common.att;>
+
+ <!-- Fixme Paragraph (normally not shown) -->
+ <!ELEMENT fixme (%content.mix;)*>
+ <!-- the "author" attribute should match the "key" attribute of the
+ <author> element -->
+ <!ATTLIST fixme author CDATA #REQUIRED
+ %common.att;>
+
+ <!-- ==================================================== -->
+ <!-- Tables -->
+ <!-- ==================================================== -->
+
+ <!-- Attributes that indicate the spanning of the table cell -->
+ <!ENTITY % cell.span
+ 'colspan CDATA "1"
+ rowspan CDATA "1"'>
+
+ <!-- Table element -->
+ <!ELEMENT table (caption?, tr+)>
+ <!ATTLIST table %common.att;>
+
+ <!-- The table title -->
+ <!ELEMENT caption (%content.mix;)*>
+ <!ATTLIST caption %common.att;>
+
+ <!-- The table row element -->
+ <!ELEMENT tr (th|td)+>
+ <!ATTLIST tr %common.att;>
+
+ <!-- The table row header element -->
+ <!ELEMENT th (%content.mix;)*>
+ <!ATTLIST th %common.att;
+ %cell.span;>
+
+ <!-- The table row description element -->
+ <!ELEMENT td (%content.mix;)*>
+ <!ATTLIST td %common.att;
+ %cell.span;>
+
+ <!-- ==================================================== -->
+ <!-- Lists -->
+ <!-- ==================================================== -->
+
+ <!-- Unordered list (typically bulleted) -->
+ <!ELEMENT ul (li|%lists;)+>
+ <!-- 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 ul
+ %common.att;
+ spacing (normal|compact) #IMPLIED>
+
+ <!-- Ordered list (typically numbered) -->
+ <!ELEMENT ol (li|%lists;)+>
+ <!-- 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 ol
+ %common.att;
+ spacing (normal|compact) #IMPLIED>
+
+ <!-- Simple list (typically with no mark) -->
+ <!ELEMENT sl (li|%lists;)+>
+ <!ATTLIST sl %common.att;>
+
+ <!-- List item -->
+ <!ELEMENT li (%content.mix;|%lists;)*>
+ <!ATTLIST li %common.att;>
+
+ <!-- Definition list (typically two-column) -->
+ <!ELEMENT dl (dt,dd)+>
+ <!ATTLIST dl %common.att;>
+
+ <!-- Definition term -->
+ <!ELEMENT dt (%content.mix;)*>
+ <!ATTLIST dt %common.att;>
+
+ <!-- Definition description -->
+ <!ELEMENT dd (%content.mix;)*>
+ <!ATTLIST dd %common.att;>
+
+ <!-- ==================================================== -->
+ <!-- Special Blocks -->
+ <!-- ==================================================== -->
+
+ <!-- Image Block (typically a separated and centered image) -->
+ <!-- FIXME (SM): should we have the notion of soft links even here
+ for inlined objects? -->
+ <!ELEMENT figure EMPTY>
+ <!ATTLIST figure src CDATA #REQUIRED
+ alt CDATA #REQUIRED
+ height CDATA #IMPLIED
+ width CDATA #IMPLIED
+ usemap CDATA #IMPLIED
+ ismap (ismap) #IMPLIED
+ %common.att;>
+
+
+
+
+
+<!-- =============================================================== -->
+<!-- Document -->
+<!-- =============================================================== -->
+
+<!ELEMENT document (header?, body, footer?)>
+<!ATTLIST document %common.att;>
+
+ <!-- ==================================================== -->
+ <!-- Header -->
+ <!-- ==================================================== -->
+
+ <!ENTITY % local.headers "">
+
+ <!ELEMENT header (title, subtitle?, version?, type?, authors,
+ notice*, abstract? %local.headers;)>
+ <!ATTLIST header %common.att;>
+
+ <!ELEMENT title (%text;)>
+ <!ATTLIST title %common.att;>
+
+ <!ELEMENT subtitle (%text;)>
+ <!ATTLIST subtitle %common.att;>
+
+ <!ELEMENT version (%text;)>
+ <!ATTLIST version %common.att;>
+
+ <!ELEMENT type (%text;)>
+ <!ATTLIST type %common.att;>
+
+ <!ELEMENT authors (person+)>
+ <!ATTLIST authors %common.att;>
+
+ <!ELEMENT notice (%content.mix;)*>
+ <!ATTLIST notice %common.att;>
+
+ <!ELEMENT abstract (%content.mix;)*>
+ <!ATTLIST abstract %common.att;>
+
+ <!-- ==================================================== -->
+ <!-- Body -->
+ <!-- ==================================================== -->
+
+ <!ENTITY % local.sections "">
+
+ <!ENTITY % sections "s1|anchor %local.sections;">
+
+ <!ELEMENT body (%sections;)+>
+ <!ATTLIST body %common.att;>
+
+ <!ELEMENT s1 (s2|%blocks;)*>
+ <!ATTLIST s1 %title.att; %common.att;>
+
+ <!ELEMENT s2 (s3|%blocks;)*>
+ <!ATTLIST s2 %title.att; %common.att;>
+
+ <!ELEMENT s3 (s4|%blocks;)*>
+ <!ATTLIST s3 %title.att; %common.att;>
+
+ <!ELEMENT s4 (%blocks;)*>
+ <!ATTLIST s4 %title.att; %common.att;>
+
+ <!-- ==================================================== -->
+ <!-- Footer -->
+ <!-- ==================================================== -->
+
+ <!ENTITY % local.footers "">
+
+ <!ELEMENT footer (legal %local.footers;)>
+
+ <!ELEMENT legal (%content.mix;)*>
+ <!ATTLIST legal %common.att;>
+
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->
diff --git a/src/resources/entities/faq-v10.dtd b/src/resources/entities/faq-v10.dtd
new file mode 100755
index 0000000000..35459ae7e9
--- /dev/null
+++ b/src/resources/entities/faq-v10.dtd
@@ -0,0 +1,77 @@
+<!-- ===================================================================
+
+ Apache FAQ DTD (Version 1.0)
+
+PURPOSE:
+ This DTD was developed to create a simple yet powerful document
+ type for software FAQ's for use with the Apache projects.
+ It is an XML-compliant DTD and it's maintained by the Apache XML
+ project.
+
+TYPICAL INVOCATION:
+
+ <!DOCTYPE document PUBLIC
+ "-//APACHE//DTD FAQ Vx.yz//EN"
+ "http://xml.apache.org/DTD/faq-vxyz.dtd">
+
+ where
+
+ x := major version
+ y := minor version
+ z := status identifier (optional)
+
+NOTES:
+ FAQs represent a powerful knowledge base and a very good way of solving
+ common user problems reducing messages on mail lists and reducing the effort
+ required for software installation and usage. Thid DTD want to be a common
+ format for FAQ interchange to allow FAQ-O-Matic-type workgroup services to
+ be published in other formats as well as enhancing data interchange.
+
+AUTHORS:
+ Stefano Mazzocchi <stefano@apache.org>
+
+FIXME:
+
+CHANGE HISTORY:
+ 19991129 Initial version. (SM)
+
+COPYRIGHT:
+ Copyright (c) @year@ The Apache Software Foundation.
+
+ Permission to copy in any form is granted provided this notice is
+ included in all copies. Permission to redistribute is granted
+ provided this file is distributed untouched in all its parts and
+ included files.
+
+==================================================================== -->
+
+<!-- =============================================================== -->
+<!-- Extend the Documentation DTD -->
+<!-- =============================================================== -->
+
+<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
+ possibly using public identifiers -->
+<!ENTITY % document-dtd SYSTEM "document-v10.dtd">
+%document-dtd;
+
+
+<!-- =============================================================== -->
+<!-- Document Type Definition -->
+<!-- =============================================================== -->
+
+<!ELEMENT faqs (authors?, faq)+>
+<!ATTLIST faqs %common.att;
+ %title.att;>
+
+ <!ELEMENT faq (question, answer)>
+ <!ATTLIST faq %common.att;>
+
+ <!ELEMENT question (%content.mix;)*>
+ <!ATTLIST question %common.att;>
+
+ <!ELEMENT answer (%blocks;)*>
+ <!ATTLIST answer author IDREF #IMPLIED>
+
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->
diff --git a/src/resources/entities/javadoc-v04draft.dtd b/src/resources/entities/javadoc-v04draft.dtd
new file mode 100755
index 0000000000..efa6bbce17
--- /dev/null
+++ b/src/resources/entities/javadoc-v04draft.dtd
@@ -0,0 +1,254 @@
+<!-- ===================================================================
+
+ Apache JavaDoc DTD (version 0.4-draft)
+
+PURPOSE:
+ This DTD is designed to capture the output of JavaDoc as an XML document
+ through the use of the JavaDocXML Doclet. The hope is that by having the
+ JavaDoc documentation in an XML format, it will be easier for application
+ developers working with XML to treat their java source documentation in the
+ same way they treat any other XML document within their publication framework.
+
+ This DTD should reflect the information contained within the RootDoc object
+ passed to the JavaDocXML Doclet by JavaDoc. The RootDoc object and the rest
+ of the javaDoc Doclet API is specified at
+
+ http://java.sun.com/products/jdk/1.2/docs/tooldocs/javadoc/doclet/index.html
+
+ The only information that appears to be difficult to derive from this DTD
+ that is easy to obtain from the RootDoc object is the information about
+ serialization. However, this information should be derivable by manually
+ looking for the correct serialization methods and other related structures.
+
+TYPICAL INVOCATION:
+
+ <!DOCTYPE document PUBLIC
+ "-//APACHE//DTD JavaDoc Vx.yz//EN"
+ "http://xml.apache.org/DTD/javadoc-vxyz.dtd">
+
+ where
+
+ x := major version
+ y := minor version
+ z := status identifier (optional)
+
+NOTES:
+ The authors would like to thank the Cocoon's mail list subscribers for
+ providing such great support and feedback for this DTD.
+
+AUTHORS:
+ Kenneth Murphy <murphyk@umsystem.edu>
+
+FIXME:
+
+CHANGE HISTORY:
+ 199909?? Original idea of XML doclet. (KM)
+ 199910?? Initial version of this DTD. (KM)
+ 19991129 Cleaned up DTD. (SM)
+
+COPYRIGHT:
+ Copyright (c) @year@ The Apache Software Foundation.
+
+ Permission to copy in any form is granted provided this notice is
+ included in all copies. Permission to redistribute is granted
+ provided this file is distributed untouched in all its parts and
+ included files.
+
+==================================================================== -->
+
+<!-- =============================================================== -->
+<!-- Common Attribute Entities -->
+<!-- =============================================================== -->
+
+<!ENTITY % name 'name CDATA #REQUIRED'>
+<!ENTITY % dimension 'dimension CDATA #REQUIRED'>
+
+<!ENTITY % abstract 'abstract (true | false) "false"'>
+<!ENTITY % anonymous 'anonymous (true | false) "false"'>
+<!ENTITY % synthetic 'synthetic (true | false) "false"'>
+<!ENTITY % static 'static (true | false) "false"'>
+<!ENTITY % final 'final (true | false) "false"'>
+<!ENTITY % transient 'transient (true | false) "false"'>
+<!ENTITY % volatile 'volatile (true | false) "false"'>
+<!ENTITY % native 'native (true | false) "false"'>
+<!ENTITY % synchronized 'synchronized (true | false) "false"'>
+
+<!ENTITY % access 'access (private | package | protected | public) "package"'>
+<!ENTITY % class.access 'access (package | public) "package"'>
+
+<!ENTITY % extensibility 'extensibility (abstract | final | default) "default"'>
+
+
+<!-- =============================================================== -->
+<!-- Javadoc -->
+<!-- =============================================================== -->
+
+<!ELEMENT javadoc (package*, class*, interface*)>
+
+<!-- =============================================================== -->
+<!-- Package -->
+<!-- =============================================================== -->
+
+<!ELEMENT package (doc?, package*, class*, interface*)>
+<!ATTLIST package %name;>
+
+<!-- =============================================================== -->
+<!-- Class -->
+<!-- =============================================================== -->
+
+<!ELEMENT class (doc?,
+ extends_class?,
+ implements?,
+ field*,
+ constructor*,
+ method*,
+ innerclass*)>
+<!ATTLIST class
+ %name;
+ %extensibility;
+ %class.access;>
+
+<!ELEMENT extends_class (classref+)>
+
+<!ELEMENT innerclass (doc?,
+ extends?,
+ implements?,
+ field*,
+ constructor*,
+ method*)>
+<!ATTLIST innerclass
+ %name;
+ %access;
+ %abstract;
+ %anonymous;
+ %final;
+ %static;>
+
+<!-- =============================================================== -->
+<!-- Interface -->
+<!-- =============================================================== -->
+
+<!ELEMENT interface (doc?,
+ extends_interface?,
+ field*,
+ method*)>
+<!ATTLIST interface
+ %name;
+ %access;>
+
+<!ELEMENT extends_interface (interfaceref+)>
+
+<!-- =============================================================== -->
+<!-- Elements -->
+<!-- =============================================================== -->
+
+<!ELEMENT implements (interfaceref+)>
+
+<!ELEMENT throws (classref)+>
+
+<!ELEMENT classref EMPTY>
+<!ATTLIST classref %name;>
+
+<!ELEMENT interfaceref EMPTY>
+<!ATTLIST interfaceref %name;>
+
+<!ELEMENT methodref EMPTY>
+<!ATTLIST methodref %name;>
+
+<!ELEMENT packageref EMPTY>
+<!ATTLIST packageref %name;>
+
+<!ELEMENT primitive EMPTY>
+<!ATTLIST primitive
+ type (void | boolean | int | long | byte | short | double | float | char) #REQUIRED>
+
+<!ELEMENT field (doc?, (classref | interfaceref | primitive))>
+<!ATTLIST field
+ %name;
+ %access;
+ %dimension;
+ %synthetic;
+ %static;
+ %final;
+ %transient;
+ %volatile;>
+
+<!ELEMENT constructor (doc?, parameter*, throws*)>
+<!ATTLIST constructor
+ %name;
+ %access;
+ %synthetic;>
+
+<!ELEMENT method (doc?, returns, parameter*, throws*)>
+<!ATTLIST method
+ %name;
+ %access;
+ %extensibility;
+ %native;
+ %synthetic;
+ %static;
+ %synchronized;>
+
+<!ELEMENT returns (classref | interfaceref | primitive)>
+<!ATTLIST returns %dimension;>
+
+<!ELEMENT parameter (classref | interfaceref | primitive)>
+<!ATTLIST parameter
+ %name;
+ %final;
+ %dimension;>
+
+<!ELEMENT dimension (#PCDATA)>
+
+<!ELEMENT doc (#PCDATA |
+ linktag |
+ authortag |
+ versiontag |
+ paramtag |
+ returntag |
+ exceptiontag |
+ throwstag |
+ seetag |
+ sincetag |
+ deprecatedtag |
+ serialtag |
+ serialfieldtag |
+ serialdatatag)*>
+
+<!ELEMENT linktag (#PCDATA)>
+<!ATTLIST linktag
+ src CDATA #REQUIRED>
+
+<!ELEMENT authortag (#PCDATA | linktag)*>
+
+<!ELEMENT versiontag (#PCDATA | linktag)*>
+
+<!ELEMENT paramtag (#PCDATA | linktag)*>
+<!ATTLIST paramtag %name;>
+
+<!ELEMENT returntag (#PCDATA | linktag)*>
+
+<!ELEMENT exceptiontag (#PCDATA | classref | linktag)*>
+
+<!ELEMENT throwstag (#PCDATA | classref | linktag)*>
+
+<!ELEMENT seetag (#PCDATA | linktag)*>
+<!ATTLIST seetag
+ src CDATA #REQUIRED>
+
+<!ELEMENT sincetag (#PCDATA | linktag)*>
+
+<!ELEMENT deprecatedtag (#PCDATA | linktag)*>
+
+<!ELEMENT serialtag (#PCDATA | linktag)*>
+
+<!ELEMENT serialfieldtag (#PCDATA | linktag)*>
+<!ATTLIST serialfieldtag
+ fieldname CDATA #REQUIRED
+ fieldtype CDATA #REQUIRED>
+
+<!ELEMENT serialdatatag (#PCDATA | linktag)*>
+
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->
diff --git a/src/resources/entities/sitemap-v02.dtd b/src/resources/entities/sitemap-v02.dtd
new file mode 100755
index 0000000000..7e34e8f899
--- /dev/null
+++ b/src/resources/entities/sitemap-v02.dtd
@@ -0,0 +1,341 @@
+<!-- ===================================================================
+
+ Apache Cocoon Sitemap DTD (Version 0.2)
+
+PURPOSE:
+ INITIAL DRAFT DTD for the Cocoon2 sitemap.xmap files.
+
+TYPICAL INVOCATION:
+
+ <!DOCTYPE map:sitemap PUBLIC
+ "-//APACHE//DTD Cocoon Sitemap Vx.yz//EN"
+ "sitemap-vxyz.dtd">
+
+ where
+
+ x := major version
+ y := minor version
+ z := status identifier (optional)
+
+NOTES:
+* ATTENTION: This initial DTD was reverse-engineered from the various
+ sitemap.xmap instances included in the current distribution. This is
+ just an attempt to document the existing rules for sitemap structure.
+ In many cases a very lax content model is used, simply to get around
+ validation issues.
+ A proper design process is still required.
+* Needed by XML editing tools for creation of reliable documents.
+* Can generate XSD once DTD is locked down.
+* We need to synchronise this DTD with the relax-ng work
+ by <Bruno.Dumon@the-ecorp.com> ... cocoon-dev 2001-07-18
+ http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=99545886226916&w=2
+* This DTD has been tested with various XML validating parsers.
+* The big questions (still) are:
+ "What possibilities were not included in the examples?" and
+ "What in the example sitemap.xmap files is mandatory versus optional?"
+
+AUTHORS:
+ Jeffrey Ricker NG (Usonia Holdings) <rickerng@usonia.net>
+ David Crossley <crossley@indexgeo.com.au>
+
+FIXME:
+ - map:act is used in various contexts, so it has a loose definition
+ - Completely rewrite this DTD looking from the application
+ point-of-view (do not rely on this temporary initial DTD)
+ - map:when and map:otherwise are shown in xdocs/sitemap.xml but are
+ not used in the sitemap.xmap files
+ - align elements and attributes with sitemap*.xsl
+ - review all xdocs/userdocs/generators/*.xml etc. and sync with this DTD
+
+CHANGE HISTORY:
+ 20010715 V0.1 Initial version. (RNG)
+ 20011106 V0.2 Reviewed all */sitemap.xmap and added definitions (DC)
+ 20011106 V0.2 All elements now have "map:" prefix. (DC)
+ 20011106 V0.2 Incorporated comments Bruno Dumon cocoon-dev 20010718 (DC)
+ 20011116 V0.2 Changes from label/view discussion cocoon-dev 20011115 (DC)
+ 20011219 V0.2 Deprecated 'redirect-to resource'. Added 'map:call resource'(CH)
+
+==================================================================== -->
+
+<!ELEMENT map:sitemap (map:components, map:views?, map:resources?,
+ map:action-sets?, map:pipelines)>
+<!ATTLIST map:sitemap
+ xmlns:map CDATA #FIXED "http://apache.org/cocoon/sitemap/1.0"
+>
+
+<!-- =============================================================== -->
+<!-- Components -->
+<!-- =============================================================== -->
+
+<!ELEMENT map:components (map:generators, map:transformers, map:readers,
+ map:serializers, map:selectors?, map:matchers?,
+ map:actions?)>
+<!-- RNG: must they appear in this order?
+ must they all appear, even if they are empty? -->
+<!-- DC: it seems that some sitemaps do not contain all components
+ e.g. documentation/sitemap.xmap does not have map:selectors -->
+
+ <!-- Generators ======================================== -->
+<!ELEMENT map:generators (map:generator*)>
+<!ATTLIST map:generators
+ default CDATA #IMPLIED
+>
+<!ELEMENT map:generator EMPTY>
+<!ATTLIST map:generator
+ name CDATA #REQUIRED
+ src CDATA #REQUIRED
+ label CDATA #IMPLIED
+ pool-max CDATA #IMPLIED
+ pool-min CDATA #IMPLIED
+ pool-grow CDATA #IMPLIED
+>
+
+<!-- RNG: with all attributes, which are required and which are implied? -->
+
+ <!-- Transformers ====================================== -->
+<!ELEMENT map:transformers (map:transformer*)>
+<!ATTLIST map:transformers
+ default CDATA #IMPLIED
+>
+<!ELEMENT map:transformer ANY>
+<!-- RNG: surely the content is not ANY. However, there were so many
+ children here that I did not know where to begin -->
+<!-- DC: here are some that are currently used -->
+<!ELEMENT use-store (#PCDATA)>
+<!ELEMENT use-request-parameters (#PCDATA)>
+<!ELEMENT use-browser-capabilities-db (#PCDATA)>
+<!ELEMENT catalogue-name (#PCDATA)>
+<!ELEMENT catalogue-location (#PCDATA)>
+<!ATTLIST map:transformer
+ name CDATA #REQUIRED
+ src CDATA #REQUIRED
+ label CDATA #IMPLIED
+ pool-max CDATA #IMPLIED
+ pool-min CDATA #IMPLIED
+ pool-grow CDATA #IMPLIED
+>
+
+ <!-- Readers =========================================== -->
+<!ELEMENT map:readers (map:reader*)>
+<!ATTLIST map:readers
+ default CDATA #IMPLIED
+>
+<!ELEMENT map:reader EMPTY>
+<!-- RNG: does reader ever have children? Its peers do. -->
+<!ATTLIST map:reader
+ name CDATA #REQUIRED
+ src CDATA #REQUIRED
+>
+
+ <!-- Serializers ======================================= -->
+<!ELEMENT map:serializers (map:serializer*)>
+<!ATTLIST map:serializers
+ default CDATA #IMPLIED
+>
+<!ELEMENT map:serializer (doctype-public|doctype-system|encoding|
+ omit-xml-declaration|parameter)*>
+<!-- RNG: are these the only children of serializer? -->
+<!ATTLIST map:serializer
+ name CDATA #REQUIRED
+ mime-type CDATA #REQUIRED
+ src CDATA #REQUIRED
+ pool-max CDATA #IMPLIED
+ pool-min CDATA #IMPLIED
+ pool-grow CDATA #IMPLIED
+>
+<!ELEMENT doctype-public (#PCDATA)>
+<!ELEMENT doctype-system (#PCDATA)>
+<!ELEMENT encoding (#PCDATA)>
+<!ELEMENT omit-xml-declaration (#PCDATA)>
+<!ELEMENT parameter EMPTY>
+<!ATTLIST parameter
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED
+ type CDATA #IMPLIED
+>
+
+ <!-- Selectors ========================================= -->
+<!ELEMENT map:selectors (map:selector*)>
+<!ATTLIST map:selectors
+ default CDATA #IMPLIED
+>
+<!ELEMENT map:selector (browser*)>
+<!ATTLIST map:selector
+ name CDATA #REQUIRED
+ src CDATA #REQUIRED
+>
+<!ELEMENT browser EMPTY>
+<!ATTLIST browser
+ name CDATA #REQUIRED
+ useragent CDATA #REQUIRED
+>
+
+ <!-- Matchers ========================================== -->
+<!ELEMENT map:matchers (map:matcher*)>
+<!ATTLIST map:matchers
+ default CDATA #IMPLIED
+>
+<!ELEMENT map:matcher (attribute-name|parameter-name|header-name)*>
+<!ATTLIST map:matcher
+ name CDATA #REQUIRED
+ src CDATA #REQUIRED
+>
+<!ELEMENT attribute-name (#PCDATA)>
+<!ELEMENT parameter-name (#PCDATA)>
+<!ELEMENT header-name (#PCDATA)>
+
+ <!-- Actions =========================================== -->
+<!ELEMENT map:actions (map:action*)>
+<!ATTLIST map:actions
+ default CDATA #IMPLIED
+>
+<!ELEMENT map:action EMPTY>
+<!ATTLIST map:action
+ name CDATA #REQUIRED
+ src CDATA #REQUIRED
+>
+
+<!-- =============================================================== -->
+<!-- Views -->
+<!-- =============================================================== -->
+
+<!ELEMENT map:views (map:view*)>
+<!ELEMENT map:view (map:transform*,map:serialize)>
+<!ATTLIST map:view
+ name CDATA #REQUIRED
+ from-label CDATA #IMPLIED
+ from-position (first|last) "last"
+>
+<!ELEMENT map:serialize (map:parameter*)>
+<!ATTLIST map:serialize
+ type CDATA #REQUIRED
+ mime-type CDATA #IMPLIED
+ status-code CDATA #IMPLIED
+>
+
+<!-- =============================================================== -->
+<!-- Resources -->
+<!-- =============================================================== -->
+
+<!ELEMENT map:resources (map:resource*)>
+<!ELEMENT map:resource ((map:generate,map:transform+,map:serialize) | map:act)>
+<!ATTLIST map:resource
+ name CDATA #REQUIRED
+>
+<!-- generate and transform defined in PIPELINE section -->
+
+<!-- =============================================================== -->
+<!-- Action Sets -->
+<!-- =============================================================== -->
+
+<!ELEMENT map:action-sets (map:action-set*)>
+<!ELEMENT map:action-set (map:act+)>
+<!ATTLIST map:action-set
+ name CDATA #REQUIRED
+>
+<!ELEMENT map:act (map:parameter|map:redirect-to|map:call|map:generate|
+ map:transform|map:serialize|map:act|map:match)*>
+<!ATTLIST map:act
+ type CDATA #IMPLIED
+ action CDATA #IMPLIED
+ set CDATA #IMPLIED
+>
+
+<!-- =============================================================== -->
+<!-- Pipelines -->
+<!-- =============================================================== -->
+
+<!ELEMENT map:pipelines (map:pipeline*)>
+<!ELEMENT map:pipeline (map:match*, map:handle-errors?)>
+
+<!ELEMENT map:match (map:mount | map:redirect-to | map:call | map:generate |
+ map:transform | map:serialize | map:read |
+ map:aggregate | map:act | map:match)*>
+<!-- RNG: It seemed from the example that match should be defined as
+ match (map:mount*|map:redirect-to*|(map:generate*,map:transform*,map:serialize*)*|map:read*|map:aggregate*)
+ but I have no way of knowing.
+-->
+<!-- DC: Now map:act complicates the content model even further -->
+<!ATTLIST map:match
+ type CDATA #IMPLIED
+ pattern CDATA #REQUIRED
+>
+
+<!-- map:act is already defined in the Action Sets section -->
+
+<!ELEMENT map:mount EMPTY>
+<!ATTLIST map:mount
+ uri-prefix CDATA #REQUIRED
+ src CDATA #REQUIRED
+ reload-method (synchron|asynchron) "asynchron"
+ check-reload (true|false|yes|no) "no"
+>
+
+<!ELEMENT map:redirect-to EMPTY>
+<!ATTLIST map:redirect-to
+ uri CDATA #IMPLIED
+ session (true|false|yes|no) "no"
+>
+<!-- CH: redirects to resources are now deprecated
+<!ATTLIST map:redirect-to
+ uri CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ target CDATA #IMPLIED
+ session (true|false|yes|no) "no"
+>
+-->
+
+<!ELEMENT map:call (map:parameter*)>
+<!ATTLIST map:call
+ resource CDATA #REQUIRED
+>
+
+<!ELEMENT map:generate (map:parameter*)>
+<!ATTLIST map:generate
+ type CDATA #IMPLIED
+ src CDATA #IMPLIED
+ label CDATA #IMPLIED
+>
+<!ELEMENT map:parameter EMPTY>
+<!ATTLIST map:parameter
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED
+>
+
+<!ELEMENT map:transform (map:parameter*)>
+<!ATTLIST map:transform
+ type CDATA #IMPLIED
+ src CDATA #IMPLIED
+ label CDATA #IMPLIED
+>
+
+<!-- map:serialize is already defined in VIEWS section -->
+
+<!ELEMENT map:read EMPTY>
+<!ATTLIST map:read
+ src CDATA #REQUIRED
+ mime-type CDATA #REQUIRED
+ type CDATA #IMPLIED
+>
+
+<!ELEMENT map:aggregate (map:part*)>
+<!ATTLIST map:aggregate
+ element CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ ns CDATA #IMPLIED
+ label CDATA #IMPLIED
+>
+<!ELEMENT map:part EMPTY>
+<!ATTLIST map:part
+ src CDATA #IMPLIED
+ element CDATA #IMPLIED
+ ns CDATA #IMPLIED
+ strip-root CDATA #IMPLIED
+ label CDATA #IMPLIED
+>
+
+<!ELEMENT map:handle-errors (map:generate*,map:transform*,map:serialize*)>
+
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->
diff --git a/src/resources/entities/specification-v10.dtd b/src/resources/entities/specification-v10.dtd
new file mode 100755
index 0000000000..39d26f80e4
--- /dev/null
+++ b/src/resources/entities/specification-v10.dtd
@@ -0,0 +1,85 @@
+<!-- ===================================================================
+
+ Apache Specification DTD (Version 1.0)
+
+PURPOSE:
+ This DTD was developed to create a simple yet powerful document
+ type for software specifications for use with the Apache projects.
+ It is an XML-compliant DTD and it's maintained by the Apache XML
+ project.
+
+TYPICAL INVOCATION:
+
+ <!DOCTYPE document PUBLIC
+ "-//APACHE//DTD Specification Vx.yz//EN"
+ "http://xml.apache.org/DTD/specification-vxyz.dtd">
+
+ where
+
+ x := major version
+ y := minor version
+ z := status identifier (optional)
+
+NOTES:
+
+AUTHORS:
+ Stefano Mazzocchi <stefano@apache.org>
+
+FIXME:
+
+CHANGE HISTORY:
+ 19991129 Initial version. (SM)
+
+COPYRIGHT:
+ Copyright (c) @year@ The Apache Software Foundation.
+
+ Permission to copy in any form is granted provided this notice is
+ included in all copies. Permission to redistribute is granted
+ provided this file is distributed untouched in all its parts and
+ included files.
+
+==================================================================== -->
+
+<!-- =============================================================== -->
+<!-- Extend the Documentation DTD -->
+<!-- =============================================================== -->
+
+<!-- extend the local.xxx entities -->
+<!ENTITY % local.lists "|bl">
+
+<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
+ possibly using public identifiers -->
+<!ENTITY % document-dtd SYSTEM "document-v10.dtd">
+%document-dtd;
+
+<!-- =============================================================== -->
+<!-- Document Type Definition -->
+<!-- =============================================================== -->
+
+<!ELEMENT specification (header?, body, appendices?, footer?)>
+<!ATTLIST specification %common.att;>
+
+ <!ELEMENT appendices (%sections;)+>
+ <!ATTLIST appendices %common.att;>
+
+<!-- =============================================================== -->
+<!-- Bibliography List -->
+<!-- =============================================================== -->
+
+ <!-- Bibliography list -->
+ <!ELEMENT bl (bi)+>
+ <!ATTLIST bl %common.att;>
+
+ <!-- Book item -->
+ <!ELEMENT bi EMPTY>
+ <!ATTLIST bi %common.att;
+ %name.att;
+ %title.att;
+ %xlink-simple.att;
+ %xlink-user-new.att;
+ authors CDATA #REQUIRED
+ date CDATA #IMPLIED>
+
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->
diff --git a/src/resources/entities/svg-cocoon-v11.dtd b/src/resources/entities/svg-cocoon-v11.dtd
new file mode 100755
index 0000000000..109b4e2e8e
--- /dev/null
+++ b/src/resources/entities/svg-cocoon-v11.dtd
@@ -0,0 +1,82 @@
+<!--
+
+PURPOSE:
+This is a minimal SVG DTD intended solely for Apache Cocoon internal use.
+
+TYPICAL INVOCATION:
+
+ <!DOCTYPE svg PUBLIC
+ "-//APACHE//DTD Cocoon SVG minimal Vx.yz//EN"
+ "http://xml.apache.org/DTD/svg-cocoon-vxyz.dtd">
+
+ where
+
+ x := major version
+ y := minor version
+ z := status identifier (optional)
+
+NOTES:
+The Official SVG DTD is using some entities that cannot yet be resolved
+so this is a hack DTD to get us started. We are only using this DTD to
+enable validation during "build docs" because every XML instance must
+declare its ruleset.
+
+This initial minimal DTD has been reverse-engineered from the structure
+of the current documents at documentation/svg/*.xml
+
+See:
+http://www.w3.org/TR/2001/REC-SVG-20010904/
+http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd
+
+CHANGE HISTORY:
+ 20011031 1.0 Initial version (DC)
+ 20011102 1.1 Added more elements for new svg/*.xml from Klaus (DC)
+-->
+
+<!ELEMENT svg (defs|image|g|rect|text)*>
+<!ELEMENT defs (filter)*>
+<!ELEMENT filter (feGaussianBlur)*>
+<!ELEMENT feGaussianBlur EMPTY>
+<!ELEMENT g (path)*>
+<!ELEMENT path EMPTY>
+<!ELEMENT image EMPTY>
+<!ELEMENT rect EMPTY>
+<!ELEMENT text (label?)>
+<!ELEMENT label EMPTY>
+
+<!ATTLIST svg height CDATA #REQUIRED
+ width CDATA #REQUIRED
+ xmlns:xlink CDATA #IMPLIED
+>
+ <!-- yikes ... this breaks build docs -->
+ <!-- just like hacking the official DTD to add <label> -->
+ <!-- see email 2001-11-08 -->
+ <!-- xmlns CDATA #FIXED "http://www.w3.org/2000/svg" -->
+
+<!ATTLIST filter id ID #IMPLIED
+>
+<!ATTLIST feGaussianBlur in CDATA #IMPLIED
+ stdDeviation CDATA #IMPLIED
+>
+<!ATTLIST g transform CDATA #IMPLIED
+>
+<!ATTLIST path style CDATA #REQUIRED
+ d CDATA #REQUIRED
+>
+<!ATTLIST image width CDATA #REQUIRED
+ height CDATA #REQUIRED
+ xlink:href CDATA #IMPLIED
+>
+<!ATTLIST rect width CDATA #REQUIRED
+ height CDATA #REQUIRED
+ x CDATA #IMPLIED
+ y CDATA #IMPLIED
+ fill CDATA #IMPLIED
+ style CDATA #IMPLIED
+>
+<!ATTLIST text style CDATA #REQUIRED
+ x CDATA #REQUIRED
+ y CDATA #REQUIRED
+ text-anchor CDATA #IMPLIED
+ fill CDATA #IMPLIED
+>
diff --git a/src/resources/entities/svg10.dtd b/src/resources/entities/svg10.dtd
new file mode 100755
index 0000000000..3ed00059f9
--- /dev/null
+++ b/src/resources/entities/svg10.dtd
@@ -0,0 +1,1538 @@
+<!-- =====================================================================
+ This is the DTD for SVG 1.0.
+
+ The specification for SVG that corresponds to this DTD is available at:
+
+ http://www.w3.org/TR/2001/REC-SVG-20010904/
+
+ Copyright (c) 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
+
+ For SVG 1.0:
+
+ Namespace:
+ http://www.w3.org/2000/svg
+
+ Public identifier:
+ PUBLIC "-//W3C//DTD SVG 1.0//EN"
+
+ URI for the DTD:
+ http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd
+============================================================================= -->
+<!-- ==============================================================
+ ENTITY DECLARATIONS: Data types
+ ============================================================== -->
+<!ENTITY % BaselineShiftValue "CDATA">
+<!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
+<!ENTITY % Boolean "(false | true)">
+<!-- feature specification -->
+<!ENTITY % ClassList "CDATA">
+<!-- list of classes -->
+<!ENTITY % ClipValue "CDATA">
+<!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
+<!ENTITY % ClipPathValue "CDATA">
+<!-- 'clip-path' property/attribute value (e.g., 'none', %URI;) -->
+<!ENTITY % ClipFillRule "(nonzero | evenodd | inherit)">
+<!-- 'clip-rule' or fill-rule property/attribute value -->
+<!ENTITY % ContentType "CDATA">
+<!-- media type, as per [RFC2045] -->
+<!ENTITY % Coordinate "CDATA">
+<!-- a <coordinate> -->
+<!ENTITY % Coordinates "CDATA">
+<!-- a list of <coordinate>s -->
+<!ENTITY % Color "CDATA">
+<!-- a <color> value -->
+<!ENTITY % CursorValue "CDATA">
+<!-- 'cursor' property/attribute value (e.g., 'crosshair', %URI;) -->
+<!ENTITY % EnableBackgroundValue "CDATA">
+<!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
+<!ENTITY % ExtensionList "CDATA">
+<!-- extension list specification -->
+<!ENTITY % FeatureList "CDATA">
+<!-- feature list specification -->
+<!ENTITY % FilterValue "CDATA">
+<!-- 'filter' property/attribute value (e.g., 'none', %URI;) -->
+<!ENTITY % FontFamilyValue "CDATA">
+<!-- 'font-family' property/attribute value (i.e., list of fonts) -->
+<!ENTITY % FontSizeValue "CDATA">
+<!-- 'font-size' property/attribute value -->
+<!ENTITY % FontSizeAdjustValue "CDATA">
+<!-- 'font-size-adjust' property/attribute value -->
+<!ENTITY % GlyphOrientationHorizontalValue "CDATA">
+<!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
+<!ENTITY % GlyphOrientationVerticalValue "CDATA">
+<!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
+<!ENTITY % Integer "CDATA">
+<!-- a <integer> -->
+<!ENTITY % KerningValue "CDATA">
+<!-- 'kerning' property/attribute value (e.g., auto | <length>) -->
+<!ENTITY % LanguageCode "NMTOKEN">
+<!-- a language code, as per [RFC3066] -->
+<!ENTITY % LanguageCodes "CDATA">
+<!-- comma-separated list of language codes, as per [RFC3066] -->
+<!ENTITY % Length "CDATA">
+<!-- a <length> -->
+<!ENTITY % Lengths "CDATA">
+<!-- a list of <length>s -->
+<!ENTITY % LinkTarget "NMTOKEN">
+<!-- link to this target -->
+<!ENTITY % MarkerValue "CDATA">
+<!-- 'marker' property/attribute value (e.g., 'none', %URI;) -->
+<!ENTITY % MaskValue "CDATA">
+<!-- 'mask' property/attribute value (e.g., 'none', %URI;) -->
+<!ENTITY % MediaDesc "CDATA">
+<!-- comma-separated list of media descriptors. -->
+<!ENTITY % Number "CDATA">
+<!-- a <number> -->
+<!ENTITY % NumberOptionalNumber "CDATA">
+<!-- list of <number>s, but at least one and at most two -->
+<!ENTITY % NumberOrPercentage "CDATA">
+<!-- a <number> or a <percentage> -->
+<!ENTITY % Numbers "CDATA">
+<!-- a list of <number>s -->
+<!ENTITY % OpacityValue "CDATA">
+<!-- opacity value (e.g., <number>) -->
+<!ENTITY % Paint "CDATA">
+<!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
+<!ENTITY % PathData "CDATA">
+<!-- a path data specification -->
+<!ENTITY % Points "CDATA">
+<!-- a list of points -->
+<!ENTITY % PreserveAspectRatioSpec "CDATA">
+<!-- 'preserveAspectRatio' attribute specification -->
+<!ENTITY % Script "CDATA">
+<!-- script expression -->
+<!ENTITY % SpacingValue "CDATA">
+<!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>) -->
+<!ENTITY % StrokeDashArrayValue "CDATA">
+<!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
+<!ENTITY % StrokeDashOffsetValue "CDATA">
+<!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
+<!ENTITY % StrokeMiterLimitValue "CDATA">
+<!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
+<!ENTITY % StrokeWidthValue "CDATA">
+<!-- 'stroke-width' property/attribute value (e.g., <length>) -->
+<!ENTITY % StructuredText "content CDATA #FIXED 'structured text'">
+<!ENTITY % StyleSheet "CDATA">
+<!-- style sheet data -->
+<!ENTITY % SVGColor "CDATA">
+<!-- An SVG color value (RGB plus optional ICC) -->
+<!ENTITY % Text "CDATA">
+<!-- arbitrary text string -->
+<!ENTITY % TextDecorationValue "CDATA">
+<!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
+<!ENTITY % TransformList "CDATA">
+<!-- list of transforms -->
+<!ENTITY % URI "CDATA">
+<!-- a Uniform Resource Identifier, see [URI] -->
+<!ENTITY % ViewBoxSpec "CDATA">
+<!-- 'viewBox' attribute specification -->
+<!-- ==============================================================
+ ENTITY DECLARATIONS: Collections of common attributes
+ ============================================================== -->
+<!-- All elements have an ID. -->
+<!ENTITY % stdAttrs "id ID #IMPLIED
+ xml:base %URI; #IMPLIED">
+<!-- Common attributes for elements that might contain character data content. -->
+<!ENTITY % langSpaceAttrs "xml:lang %LanguageCode; #IMPLIED
+ xml:space (default|preserve) #IMPLIED">
+<!-- Common attributes to check for system capabilities. -->
+<!ENTITY % testAttrs "requiredFeatures %FeatureList; #IMPLIED
+ requiredExtensions %ExtensionList; #IMPLIED
+ systemLanguage %LanguageCodes; #IMPLIED">
+<!-- For most uses of URI referencing:
+ standard XLink attributes other than xlink:href. -->
+<!ENTITY % xlinkRefAttrs "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
+ xlink:type (simple) #FIXED 'simple'
+ xlink:role %URI; #IMPLIED
+ xlink:arcrole %URI; #IMPLIED
+ xlink:title CDATA #IMPLIED
+ xlink:show (other) 'other'
+ xlink:actuate (onLoad) #FIXED 'onLoad'">
+<!-- Standard XLink attributes for uses of URI referencing where xlink:show is 'embed' -->
+<!ENTITY % xlinkRefAttrsEmbed "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
+ xlink:type (simple) #FIXED 'simple'
+ xlink:role %URI; #IMPLIED
+ xlink:arcrole %URI; #IMPLIED
+ xlink:title CDATA #IMPLIED
+ xlink:show (embed) 'embed'
+ xlink:actuate (onLoad) #FIXED 'onLoad'">
+<!ENTITY % graphicsElementEvents "onfocusin %Script; #IMPLIED
+ onfocusout %Script; #IMPLIED
+ onactivate %Script; #IMPLIED
+ onclick %Script; #IMPLIED
+ onmousedown %Script; #IMPLIED
+ onmouseup %Script; #IMPLIED
+ onmouseover %Script; #IMPLIED
+ onmousemove %Script; #IMPLIED
+ onmouseout %Script; #IMPLIED
+ onload %Script; #IMPLIED">
+<!ENTITY % documentEvents "onunload %Script; #IMPLIED
+ onabort %Script; #IMPLIED
+ onerror %Script; #IMPLIED
+ onresize %Script; #IMPLIED
+ onscroll %Script; #IMPLIED
+ onzoom %Script; #IMPLIED">
+<!ENTITY % animationEvents "onbegin %Script; #IMPLIED
+ onend %Script; #IMPLIED
+ onrepeat %Script; #IMPLIED">
+<!-- This entity allows for at most one of desc, title and metadata,
+ supplied in any order -->
+<!ENTITY % descTitleMetadata "(((desc,((title,metadata?)|(metadata,title?))?)|
+ (title,((desc,metadata?)|(metadata,desc?))?)|
+ (metadata,((desc,title?)|(title,desc?))?))?)">
+<!-- ==============================================================
+ ENTITY DECLARATIONS: Collections of presentation attributes
+ ============================================================== -->
+<!-- The following presentation attributes have to do with specifying color. -->
+<!ENTITY % PresentationAttributes-Color "color %Color; #IMPLIED
+ color-interpolation (auto | sRGB | linearRGB | inherit) #IMPLIED
+ color-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED ">
+<!-- The following presentation attributes apply to container elements. -->
+<!ENTITY % PresentationAttributes-Containers "enable-background %EnableBackgroundValue; #IMPLIED ">
+<!-- The following presentation attributes apply to 'feFlood' elements. -->
+<!ENTITY % PresentationAttributes-feFlood "flood-color %SVGColor; #IMPLIED
+ flood-opacity %OpacityValue; #IMPLIED ">
+<!-- The following presentation attributes apply to filling and stroking operations. -->
+<!ENTITY % PresentationAttributes-FillStroke "fill %Paint; #IMPLIED
+ fill-opacity %OpacityValue; #IMPLIED
+ fill-rule %ClipFillRule; #IMPLIED
+ stroke %Paint; #IMPLIED
+ stroke-dasharray %StrokeDashArrayValue; #IMPLIED
+ stroke-dashoffset %StrokeDashOffsetValue; #IMPLIED
+ stroke-linecap (butt | round | square | inherit) #IMPLIED
+ stroke-linejoin (miter | round | bevel | inherit) #IMPLIED
+ stroke-miterlimit %StrokeMiterLimitValue; #IMPLIED
+ stroke-opacity %OpacityValue; #IMPLIED
+ stroke-width %StrokeWidthValue; #IMPLIED ">
+<!-- The following presentation attributes apply to filter primitives. -->
+<!ENTITY % PresentationAttributes-FilterPrimitives "color-interpolation-filters (auto | sRGB | linearRGB | inherit) #IMPLIED ">
+<!-- The following presentation attributes have to do with selecting a font to use. -->
+<!ENTITY % PresentationAttributes-FontSpecification "font-family %FontFamilyValue; #IMPLIED
+ font-size %FontSizeValue; #IMPLIED
+ font-size-adjust %FontSizeAdjustValue; #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 ">
+<!-- The following presentation attributes apply to gradient 'stop' elements. -->
+<!ENTITY % PresentationAttributes-Gradients "stop-color %SVGColor; #IMPLIED
+ stop-opacity %OpacityValue; #IMPLIED ">
+<!-- The following presentation attributes apply to graphics elements. -->
+<!ENTITY % PresentationAttributes-Graphics "clip-path %ClipPathValue; #IMPLIED
+ clip-rule %ClipFillRule; #IMPLIED
+ cursor %CursorValue; #IMPLIED
+ 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
+ filter %FilterValue; #IMPLIED
+ image-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED
+ mask %MaskValue; #IMPLIED
+ opacity %OpacityValue; #IMPLIED
+ pointer-events (visiblePainted | visibleFill | visibleStroke | visible |
+ painted | fill | stroke | all | none | inherit) #IMPLIED
+ shape-rendering (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) #IMPLIED
+ text-rendering (auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit) #IMPLIED
+ visibility (visible | hidden | inherit) #IMPLIED ">
+<!-- The following presentation attributes apply to 'image' elements. -->
+<!ENTITY % PresentationAttributes-Images "color-profile CDATA #IMPLIED ">
+<!--The following presentation attributes apply to 'feDiffuseLighting' and 'feSpecularLighting' elements. -->
+<!ENTITY % PresentationAttributes-LightingEffects "lighting-color %SVGColor; #IMPLIED ">
+<!-- The following presentation attributes apply to marker operations. -->
+<!ENTITY % PresentationAttributes-Markers "marker-start %MarkerValue; #IMPLIED
+ marker-mid %MarkerValue; #IMPLIED
+ marker-end %MarkerValue; #IMPLIED ">
+<!-- The following presentation attributes apply to text content elements. -->
+<!ENTITY % PresentationAttributes-TextContentElements "alignment-baseline (baseline | top | before-edge | text-top | text-before-edge |
+ middle | bottom | after-edge | text-bottom | text-after-edge |
+ ideographic | lower | hanging | mathematical | inherit) #IMPLIED
+ baseline-shift %BaselineShiftValue; #IMPLIED
+ direction (ltr | rtl | inherit) #IMPLIED
+ dominant-baseline (auto | autosense-script | no-change | reset|
+ ideographic | lower | hanging | mathematical | inherit ) #IMPLIED
+ glyph-orientation-horizontal %GlyphOrientationHorizontalValue; #IMPLIED
+ glyph-orientation-vertical %GlyphOrientationVerticalValue; #IMPLIED
+ kerning %KerningValue; #IMPLIED
+ letter-spacing %SpacingValue; #IMPLIED
+ text-anchor (start | middle | end | inherit) #IMPLIED
+ text-decoration %TextDecorationValue; #IMPLIED
+ unicode-bidi (normal | embed | bidi-override | inherit) #IMPLIED
+ word-spacing %SpacingValue; #IMPLIED ">
+<!-- The following presentation attributes apply to 'text' elements. -->
+<!ENTITY % PresentationAttributes-TextElements "writing-mode (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) #IMPLIED ">
+<!-- The following presentation attributes apply to elements that establish viewports. -->
+<!ENTITY % PresentationAttributes-Viewports "clip %ClipValue; #IMPLIED
+ overflow (visible | hidden | scroll | auto | inherit) #IMPLIED ">
+<!--The following represents the complete list of presentation attributes. -->
+<!ENTITY % PresentationAttributes-All "%PresentationAttributes-Color;
+ %PresentationAttributes-Containers;
+ %PresentationAttributes-feFlood;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FilterPrimitives;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Gradients;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Images;
+ %PresentationAttributes-LightingEffects;
+ %PresentationAttributes-Markers;
+ %PresentationAttributes-TextContentElements;
+ %PresentationAttributes-TextElements;
+ %PresentationAttributes-Viewports;">
+<!-- ==============================================================
+ ENTITY DECLARATIONS: DTD extensions
+ ============================================================== -->
+<!-- Allow for extending the DTD with internal subset for
+ container and graphics elements -->
+<!ENTITY % ceExt "">
+<!ENTITY % geExt "">
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Document Structure
+ ============================================================== -->
+<!ENTITY % svgExt "">
+<!ELEMENT svg (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%svgExt;)* >
+<!ATTLIST svg
+ xmlns CDATA #FIXED "http://www.w3.org/2000/svg"
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ viewBox %ViewBoxSpec; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ zoomAndPan (disable | magnify) "magnify"
+ %graphicsElementEvents;
+ %documentEvents;
+ version %Number; #FIXED "1.0"
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+ contentScriptType %ContentType; "text/ecmascript"
+ contentStyleType %ContentType; "text/css"
+>
+<!ENTITY % gExt "">
+<!ELEMENT g (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%gExt;)* >
+<!ATTLIST g
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+>
+<!ENTITY % defsExt "">
+<!ELEMENT defs (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%defsExt;)* >
+<!ATTLIST defs
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+>
+<!ENTITY % descExt "">
+<!ELEMENT desc (#PCDATA %descExt;)* >
+<!ATTLIST desc
+ %stdAttrs;
+ %langSpaceAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %StructuredText;
+>
+<!ENTITY % titleExt "">
+<!ELEMENT title (#PCDATA %titleExt;)* >
+<!ATTLIST title
+ %stdAttrs;
+ %langSpaceAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %StructuredText;
+>
+<!ENTITY % symbolExt "">
+<!ELEMENT symbol (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%symbolExt;)* >
+<!ATTLIST symbol
+ %stdAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ viewBox %ViewBoxSpec; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ %graphicsElementEvents;
+>
+<!ENTITY % useExt "">
+<!ELEMENT use (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%useExt;)*) >
+<!ATTLIST use
+ %stdAttrs;
+ %xlinkRefAttrsEmbed;
+ xlink:href %URI; #REQUIRED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+>
+<!ENTITY % imageExt "">
+<!ELEMENT image (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%imageExt;)*) >
+<!ATTLIST image
+ %stdAttrs;
+ %xlinkRefAttrsEmbed;
+ xlink:href %URI; #REQUIRED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Images;
+ %PresentationAttributes-Viewports;
+ transform %TransformList; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ %graphicsElementEvents;
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #REQUIRED
+ height %Length; #REQUIRED
+>
+<!ENTITY % switchExt "">
+<!ELEMENT switch (%descTitleMetadata;,
+ (path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|switch|a|foreignObject|
+ animate|set|animateMotion|animateColor|animateTransform
+ %ceExt;%switchExt;)*) >
+<!ATTLIST switch
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Styling
+ ============================================================== -->
+<!ELEMENT style (#PCDATA)>
+<!ATTLIST style
+ %stdAttrs;
+ xml:space (preserve) #FIXED "preserve"
+ type %ContentType; #REQUIRED
+ media %MediaDesc; #IMPLIED
+ title %Text; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Paths
+ ============================================================== -->
+<!ENTITY % pathExt "">
+<!ELEMENT path (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%pathExt;)*) >
+<!ATTLIST path
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Markers;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ d %PathData; #REQUIRED
+ pathLength %Number; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Basic Shapes
+ ============================================================== -->
+<!ENTITY % rectExt "">
+<!ELEMENT rect (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%rectExt;)*) >
+<!ATTLIST rect
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #REQUIRED
+ height %Length; #REQUIRED
+ rx %Length; #IMPLIED
+ ry %Length; #IMPLIED
+>
+<!ENTITY % circleExt "">
+<!ELEMENT circle (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%circleExt;)*) >
+<!ATTLIST circle
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ cx %Coordinate; #IMPLIED
+ cy %Coordinate; #IMPLIED
+ r %Length; #REQUIRED
+>
+<!ENTITY % ellipseExt "">
+<!ELEMENT ellipse (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%ellipseExt;)*) >
+<!ATTLIST ellipse
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ cx %Coordinate; #IMPLIED
+ cy %Coordinate; #IMPLIED
+ rx %Length; #REQUIRED
+ ry %Length; #REQUIRED
+>
+<!ENTITY % lineExt "">
+<!ELEMENT line (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%lineExt;)*) >
+<!ATTLIST line
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Markers;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ x1 %Coordinate; #IMPLIED
+ y1 %Coordinate; #IMPLIED
+ x2 %Coordinate; #IMPLIED
+ y2 %Coordinate; #IMPLIED
+>
+<!ENTITY % polylineExt "">
+<!ELEMENT polyline (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%polylineExt;)*) >
+<!ATTLIST polyline
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Markers;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ points %Points; #REQUIRED
+>
+<!ENTITY % polygonExt "">
+<!ELEMENT polygon (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
+ %geExt;%polygonExt;)*) >
+<!ATTLIST polygon
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-Markers;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ points %Points; #REQUIRED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Text
+ ============================================================== -->
+<!ENTITY % textExt "">
+<!ELEMENT text (#PCDATA|desc|title|metadata|
+ tspan|tref|textPath|altGlyph|a|animate|set|
+ animateMotion|animateColor|animateTransform
+ %geExt;%textExt;)* >
+<!ATTLIST text
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %PresentationAttributes-TextElements;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ x %Coordinates; #IMPLIED
+ y %Coordinates; #IMPLIED
+ dx %Lengths; #IMPLIED
+ dy %Lengths; #IMPLIED
+ rotate %Numbers; #IMPLIED
+ textLength %Length; #IMPLIED
+ lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
+>
+<!ENTITY % tspanExt "">
+<!ELEMENT tspan (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
+ %tspanExt;)* >
+<!ATTLIST tspan
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+ x %Coordinates; #IMPLIED
+ y %Coordinates; #IMPLIED
+ dx %Lengths; #IMPLIED
+ dy %Lengths; #IMPLIED
+ rotate %Numbers; #IMPLIED
+ textLength %Length; #IMPLIED
+ lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
+>
+<!ENTITY % trefExt "">
+<!ELEMENT tref (desc|title|metadata|animate|set|animateColor
+ %trefExt;)* >
+<!ATTLIST tref
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+ x %Coordinates; #IMPLIED
+ y %Coordinates; #IMPLIED
+ dx %Lengths; #IMPLIED
+ dy %Lengths; #IMPLIED
+ rotate %Numbers; #IMPLIED
+ textLength %Length; #IMPLIED
+ lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
+>
+<!ENTITY % textPathExt "">
+<!ELEMENT textPath (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
+ %textPathExt;)* >
+<!ATTLIST textPath
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+ %langSpaceAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+ startOffset %Length; #IMPLIED
+ textLength %Length; #IMPLIED
+ lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
+ method (align | stretch) #IMPLIED
+ spacing (auto | exact) #IMPLIED
+>
+<!ENTITY % altGlyphExt "">
+<!ELEMENT altGlyph (#PCDATA %altGlyphExt;)* >
+<!ATTLIST altGlyph
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ glyphRef CDATA #IMPLIED
+ format CDATA #IMPLIED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %graphicsElementEvents;
+ x %Coordinates; #IMPLIED
+ y %Coordinates; #IMPLIED
+ dx %Lengths; #IMPLIED
+ dy %Lengths; #IMPLIED
+ rotate %Numbers; #IMPLIED
+>
+<!ENTITY % altGlyphDefExt "">
+<!ELEMENT altGlyphDef ((glyphRef+|altGlyphItem+) %altGlyphDefExt;) >
+<!ATTLIST altGlyphDef
+ %stdAttrs;
+>
+<!ENTITY % altGlyphItemExt "">
+<!ELEMENT altGlyphItem (glyphRef+ %altGlyphItemExt;) >
+<!ATTLIST altGlyphItem
+ %stdAttrs;
+>
+<!ELEMENT glyphRef EMPTY>
+<!ATTLIST glyphRef
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-FontSpecification;
+ glyphRef CDATA #IMPLIED
+ format CDATA #IMPLIED
+ x %Number; #IMPLIED
+ y %Number; #IMPLIED
+ dx %Number; #IMPLIED
+ dy %Number; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Painting: Filling, Stroking and Marker Symbols
+ ============================================================== -->
+<!ENTITY % markerExt "">
+<!ELEMENT marker (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%markerExt;)* >
+<!ATTLIST marker
+ %stdAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ viewBox %ViewBoxSpec; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ refX %Coordinate; #IMPLIED
+ refY %Coordinate; #IMPLIED
+ markerUnits (strokeWidth | userSpaceOnUse) #IMPLIED
+ markerWidth %Length; #IMPLIED
+ markerHeight %Length; #IMPLIED
+ orient CDATA #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Color
+ ============================================================== -->
+<!ELEMENT color-profile (%descTitleMetadata;)>
+<!ATTLIST color-profile
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ local CDATA #IMPLIED
+ name CDATA #REQUIRED
+ rendering-intent (auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric) "auto"
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Gradients and Patterns
+ ============================================================== -->
+<!ENTITY % linearGradientExt "">
+<!ELEMENT linearGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
+ %linearGradientExt;)*) >
+<!ATTLIST linearGradient
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-Gradients;
+ gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ gradientTransform %TransformList; #IMPLIED
+ x1 %Coordinate; #IMPLIED
+ y1 %Coordinate; #IMPLIED
+ x2 %Coordinate; #IMPLIED
+ y2 %Coordinate; #IMPLIED
+ spreadMethod (pad | reflect | repeat) #IMPLIED
+>
+<!ENTITY % radialGradientExt "">
+<!ELEMENT radialGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
+ %radialGradientExt;)*) >
+<!ATTLIST radialGradient
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-Gradients;
+ gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ gradientTransform %TransformList; #IMPLIED
+ cx %Coordinate; #IMPLIED
+ cy %Coordinate; #IMPLIED
+ r %Length; #IMPLIED
+ fx %Coordinate; #IMPLIED
+ fy %Coordinate; #IMPLIED
+ spreadMethod (pad | reflect | repeat) #IMPLIED
+>
+<!ENTITY % stopExt "">
+<!ELEMENT stop (animate|set|animateColor
+ %stopExt;)* >
+<!ATTLIST stop
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-Gradients;
+ offset %NumberOrPercentage; #REQUIRED
+>
+<!ENTITY % patternExt "">
+<!ELEMENT pattern (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%patternExt;)* >
+<!ATTLIST pattern
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ viewBox %ViewBoxSpec; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ patternUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ patternContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ patternTransform %TransformList; #IMPLIED
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Clipping, Masking and Compositing
+ ============================================================== -->
+<!ENTITY % clipPathExt "">
+<!ELEMENT clipPath (%descTitleMetadata;,
+ (path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|animate|set|animateMotion|animateColor|animateTransform
+ %ceExt;%clipPathExt;)*) >
+<!ATTLIST clipPath
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FillStroke;
+ %PresentationAttributes-FontSpecification;
+ %PresentationAttributes-Graphics;
+ %PresentationAttributes-TextContentElements;
+ %PresentationAttributes-TextElements;
+ transform %TransformList; #IMPLIED
+ clipPathUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+>
+<!ENTITY % maskExt "">
+<!ELEMENT mask (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%maskExt;)* >
+<!ATTLIST mask
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ maskUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ maskContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Filter Effects
+ ============================================================== -->
+<!ENTITY % filterExt "">
+<!ELEMENT filter (%descTitleMetadata;,(feBlend|feFlood|
+ feColorMatrix|feComponentTransfer|
+ feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|
+ feGaussianBlur|feImage|feMerge|
+ feMorphology|feOffset|feSpecularLighting|
+ feTile|feTurbulence|
+ animate|set
+ %filterExt;)*) >
+<!ATTLIST filter
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ filterUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ primitiveUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+ filterRes %NumberOptionalNumber; #IMPLIED
+>
+<!ENTITY % filter_primitive_attributes "x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+ result CDATA #IMPLIED">
+<!ENTITY % filter_primitive_attributes_with_in "%filter_primitive_attributes;
+ in CDATA #IMPLIED">
+<!ELEMENT feDistantLight (animate | set)*>
+<!ATTLIST feDistantLight
+ %stdAttrs;
+ azimuth %Number; #IMPLIED
+ elevation %Number; #IMPLIED
+>
+<!ELEMENT fePointLight (animate | set)*>
+<!ATTLIST fePointLight
+ %stdAttrs;
+ x %Number; #IMPLIED
+ y %Number; #IMPLIED
+ z %Number; #IMPLIED
+>
+<!ELEMENT feSpotLight (animate | set)*>
+<!ATTLIST feSpotLight
+ %stdAttrs;
+ x %Number; #IMPLIED
+ y %Number; #IMPLIED
+ z %Number; #IMPLIED
+ pointsAtX %Number; #IMPLIED
+ pointsAtY %Number; #IMPLIED
+ pointsAtZ %Number; #IMPLIED
+ specularExponent %Number; #IMPLIED
+ limitingConeAngle %Number; #IMPLIED
+>
+<!ELEMENT feBlend (animate | set)*>
+<!ATTLIST feBlend
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ in2 CDATA #REQUIRED
+ mode (normal | multiply | screen | darken | lighten) "normal"
+>
+<!ELEMENT feColorMatrix (animate | set)*>
+<!ATTLIST feColorMatrix
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ type (matrix | saturate | hueRotate | luminanceToAlpha) "matrix"
+ values CDATA #IMPLIED
+>
+<!ELEMENT feComponentTransfer (feFuncR?, feFuncG?, feFuncB?, feFuncA?)>
+<!ATTLIST feComponentTransfer
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+>
+<!ENTITY % component_transfer_function_attributes "type (identity | table | discrete | linear | gamma) #REQUIRED
+ tableValues CDATA #IMPLIED
+ slope %Number; #IMPLIED
+ intercept %Number; #IMPLIED
+ amplitude %Number; #IMPLIED
+ exponent %Number; #IMPLIED
+ offset %Number; #IMPLIED">
+<!ELEMENT feFuncR (animate | set)*>
+<!ATTLIST feFuncR
+ %stdAttrs;
+ %component_transfer_function_attributes;
+>
+<!ELEMENT feFuncG (animate | set)*>
+<!ATTLIST feFuncG
+ %stdAttrs;
+ %component_transfer_function_attributes;
+>
+<!ELEMENT feFuncB (animate | set)*>
+<!ATTLIST feFuncB
+ %stdAttrs;
+ %component_transfer_function_attributes;
+>
+<!ELEMENT feFuncA (animate | set)*>
+<!ATTLIST feFuncA
+ %stdAttrs;
+ %component_transfer_function_attributes;
+>
+<!ELEMENT feComposite (animate | set)*>
+<!ATTLIST feComposite
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ in2 CDATA #REQUIRED
+ operator (over | in | out | atop | xor | arithmetic) "over"
+ k1 %Number; #IMPLIED
+ k2 %Number; #IMPLIED
+ k3 %Number; #IMPLIED
+ k4 %Number; #IMPLIED
+>
+<!ELEMENT feConvolveMatrix (animate | set)*>
+<!ATTLIST feConvolveMatrix
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ order %NumberOptionalNumber; #REQUIRED
+ kernelMatrix CDATA #REQUIRED
+ divisor %Number; #IMPLIED
+ bias %Number; #IMPLIED
+ targetX %Integer; #IMPLIED
+ targetY %Integer; #IMPLIED
+ edgeMode (duplicate | wrap | none) "duplicate"
+ kernelUnitLength %NumberOptionalNumber; #IMPLIED
+ preserveAlpha %Boolean; #IMPLIED
+>
+<!ELEMENT feDiffuseLighting ((feDistantLight | fePointLight | feSpotLight), (animate | set | animateColor)*)>
+<!ATTLIST feDiffuseLighting
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FilterPrimitives;
+ %PresentationAttributes-LightingEffects;
+ %filter_primitive_attributes_with_in;
+ surfaceScale %Number; #IMPLIED
+ diffuseConstant %Number; #IMPLIED
+ kernelUnitLength %NumberOptionalNumber; #IMPLIED
+>
+<!ELEMENT feDisplacementMap (animate | set)*>
+<!ATTLIST feDisplacementMap
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ in2 CDATA #REQUIRED
+ scale %Number; #IMPLIED
+ xChannelSelector (R | G | B | A) "A"
+ yChannelSelector (R | G | B | A) "A"
+>
+<!ELEMENT feFlood (animate | set | animateColor)*>
+<!ATTLIST feFlood
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-feFlood;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+>
+<!ELEMENT feGaussianBlur (animate | set)*>
+<!ATTLIST feGaussianBlur
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ stdDeviation %NumberOptionalNumber; #IMPLIED
+>
+<!ELEMENT feImage (animate | set | animateTransform)*>
+<!ATTLIST feImage
+ %stdAttrs;
+ %xlinkRefAttrsEmbed;
+ xlink:href %URI; #REQUIRED
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ %filter_primitive_attributes;
+>
+<!ELEMENT feMerge (feMergeNode)*>
+<!ATTLIST feMerge
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes;
+>
+<!ELEMENT feMergeNode (animate | set)*>
+<!ATTLIST feMergeNode
+ %stdAttrs;
+ in CDATA #IMPLIED
+>
+<!ELEMENT feMorphology (animate | set)*>
+<!ATTLIST feMorphology
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ operator (erode | dilate) "erode"
+ radius %NumberOptionalNumber; #IMPLIED
+>
+<!ELEMENT feOffset (animate | set)*>
+<!ATTLIST feOffset
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+ dx %Number; #IMPLIED
+ dy %Number; #IMPLIED
+>
+<!ELEMENT feSpecularLighting ((feDistantLight | fePointLight | feSpotLight), (animate | set | animateColor)*)>
+<!ATTLIST feSpecularLighting
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-Color;
+ %PresentationAttributes-FilterPrimitives;
+ %PresentationAttributes-LightingEffects;
+ %filter_primitive_attributes_with_in;
+ surfaceScale %Number; #IMPLIED
+ specularConstant %Number; #IMPLIED
+ specularExponent %Number; #IMPLIED
+ kernelUnitLength %NumberOptionalNumber; #IMPLIED
+>
+<!ELEMENT feTile (animate | set)*>
+<!ATTLIST feTile
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes_with_in;
+>
+<!ELEMENT feTurbulence (animate | set)*>
+<!ATTLIST feTurbulence
+ %stdAttrs;
+ %PresentationAttributes-FilterPrimitives;
+ %filter_primitive_attributes;
+ baseFrequency %NumberOptionalNumber; #IMPLIED
+ numOctaves %Integer; #IMPLIED
+ seed %Number; #IMPLIED
+ stitchTiles (stitch | noStitch) "noStitch"
+ type (fractalNoise | turbulence) "turbulence"
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Interactivity
+ ============================================================== -->
+<!ELEMENT cursor (%descTitleMetadata;)>
+<!ATTLIST cursor
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Linking
+ ============================================================== -->
+<!ENTITY % aExt "">
+<!ELEMENT a (#PCDATA|desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %ceExt;%aExt;)* >
+<!ATTLIST a
+ %stdAttrs;
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+ xlink:type (simple) #FIXED "simple"
+ xlink:role %URI; #IMPLIED
+ xlink:arcrole %URI; #IMPLIED
+ xlink:title CDATA #IMPLIED
+ xlink:show (new | replace) "replace"
+ xlink:actuate (onRequest) #FIXED "onRequest"
+ xlink:href %URI; #REQUIRED
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ target %LinkTarget; #IMPLIED
+>
+<!ENTITY % viewExt "">
+<!ELEMENT view (%descTitleMetadata;%viewExt;) >
+<!ATTLIST view
+ %stdAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ viewBox %ViewBoxSpec; #IMPLIED
+ preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
+ zoomAndPan (disable | magnify) "magnify"
+ viewTarget CDATA #IMPLIED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Scripting
+ ============================================================== -->
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED
+ externalResourcesRequired %Boolean; #IMPLIED
+ type %ContentType; #REQUIRED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Animation
+ ============================================================== -->
+<!ENTITY % animElementAttrs "%xlinkRefAttrs;
+ xlink:href %URI; #IMPLIED">
+<!ENTITY % animAttributeAttrs "attributeName CDATA #REQUIRED
+ attributeType CDATA #IMPLIED">
+<!ENTITY % animTimingAttrs "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'">
+<!ENTITY % animValueAttrs "calcMode (discrete | linear | paced | spline) 'linear'
+ values CDATA #IMPLIED
+ keyTimes CDATA #IMPLIED
+ keySplines CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED
+ by CDATA #IMPLIED">
+<!ENTITY % animAdditionAttrs "additive (replace | sum) 'replace'
+ accumulate (none | sum) 'none'">
+<!ENTITY % animateExt "">
+<!ELEMENT animate (%descTitleMetadata;%animateExt;) >
+<!ATTLIST animate
+ %stdAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ %animationEvents;
+ %animElementAttrs;
+ %animAttributeAttrs;
+ %animTimingAttrs;
+ %animValueAttrs;
+ %animAdditionAttrs;
+>
+<!ENTITY % setExt "">
+<!ELEMENT set (%descTitleMetadata;%setExt;) >
+<!ATTLIST set
+ %stdAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ %animationEvents;
+ %animElementAttrs;
+ %animAttributeAttrs;
+ %animTimingAttrs;
+ to CDATA #IMPLIED
+>
+<!ENTITY % animateMotionExt "">
+<!ELEMENT animateMotion (%descTitleMetadata;,mpath? %animateMotionExt;) >
+<!ATTLIST animateMotion
+ %stdAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ %animationEvents;
+ %animElementAttrs;
+ %animTimingAttrs;
+ calcMode (discrete | linear | paced | spline) "paced"
+ values CDATA #IMPLIED
+ keyTimes CDATA #IMPLIED
+ keySplines CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED
+ by CDATA #IMPLIED
+ %animAdditionAttrs;
+ path CDATA #IMPLIED
+ keyPoints CDATA #IMPLIED
+ rotate CDATA #IMPLIED
+ origin CDATA #IMPLIED
+>
+<!ENTITY % mpathExt "">
+<!ELEMENT mpath (%descTitleMetadata;%mpathExt;) >
+<!ATTLIST mpath
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+ externalResourcesRequired %Boolean; #IMPLIED
+>
+<!ENTITY % animateColorExt "">
+<!ELEMENT animateColor (%descTitleMetadata;%animateColorExt;) >
+<!ATTLIST animateColor
+ %stdAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ %animationEvents;
+ %animElementAttrs;
+ %animAttributeAttrs;
+ %animTimingAttrs;
+ %animValueAttrs;
+ %animAdditionAttrs;
+>
+<!ENTITY % animateTransformExt "">
+<!ELEMENT animateTransform (%descTitleMetadata;%animateTransformExt;) >
+<!ATTLIST animateTransform
+ %stdAttrs;
+ %testAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ %animationEvents;
+ %animElementAttrs;
+ %animAttributeAttrs;
+ %animTimingAttrs;
+ %animValueAttrs;
+ %animAdditionAttrs;
+ type (translate | scale | rotate | skewX | skewY) "translate"
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Fonts
+ ============================================================== -->
+<!ENTITY % fontExt "">
+<!ELEMENT font (%descTitleMetadata;,font-face,
+ missing-glyph,(glyph|hkern|vkern %fontExt;)*) >
+<!ATTLIST font
+ %stdAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ horiz-origin-x %Number; #IMPLIED
+ horiz-origin-y %Number; #IMPLIED
+ horiz-adv-x %Number; #REQUIRED
+ vert-origin-x %Number; #IMPLIED
+ vert-origin-y %Number; #IMPLIED
+ vert-adv-y %Number; #IMPLIED
+>
+<!ENTITY % glyphExt "">
+<!ELEMENT glyph (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %glyphExt;)* >
+<!ATTLIST glyph
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ unicode CDATA #IMPLIED
+ glyph-name CDATA #IMPLIED
+ d %PathData; #IMPLIED
+ orientation CDATA #IMPLIED
+ arabic-form CDATA #IMPLIED
+ lang %LanguageCodes; #IMPLIED
+ horiz-adv-x %Number; #IMPLIED
+ vert-origin-x %Number; #IMPLIED
+ vert-origin-y %Number; #IMPLIED
+ vert-adv-y %Number; #IMPLIED
+>
+<!ENTITY % missing-glyphExt "">
+<!ELEMENT missing-glyph (desc|title|metadata|defs|
+ path|text|rect|circle|ellipse|line|polyline|polygon|
+ use|image|svg|g|view|switch|a|altGlyphDef|
+ script|style|symbol|marker|clipPath|mask|
+ linearGradient|radialGradient|pattern|filter|cursor|font|
+ animate|set|animateMotion|animateColor|animateTransform|
+ color-profile|font-face
+ %missing-glyphExt;)* >
+<!ATTLIST missing-glyph
+ %stdAttrs;
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ d %PathData; #IMPLIED
+ horiz-adv-x %Number; #IMPLIED
+ vert-origin-x %Number; #IMPLIED
+ vert-origin-y %Number; #IMPLIED
+ vert-adv-y %Number; #IMPLIED
+>
+<!ELEMENT hkern EMPTY>
+<!ATTLIST hkern
+ %stdAttrs;
+ u1 CDATA #IMPLIED
+ g1 CDATA #IMPLIED
+ u2 CDATA #IMPLIED
+ g2 CDATA #IMPLIED
+ k %Number; #REQUIRED
+>
+<!ELEMENT vkern EMPTY>
+<!ATTLIST vkern
+ %stdAttrs;
+ u1 CDATA #IMPLIED
+ g1 CDATA #IMPLIED
+ u2 CDATA #IMPLIED
+ g2 CDATA #IMPLIED
+ k %Number; #REQUIRED
+>
+<!ELEMENT font-face (%descTitleMetadata;, font-face-src?, definition-src?)>
+<!ATTLIST font-face
+ %stdAttrs;
+ 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; #IMPLIED
+ panose-1 CDATA #IMPLIED
+ stemv %Number; #IMPLIED
+ stemh %Number; #IMPLIED
+ slope %Number; #IMPLIED
+ cap-height %Number; #IMPLIED
+ x-height %Number; #IMPLIED
+ accent-height %Number; #IMPLIED
+ ascent %Number; #IMPLIED
+ descent %Number; #IMPLIED
+ widths CDATA #IMPLIED
+ bbox CDATA #IMPLIED
+ ideographic %Number; #IMPLIED
+ alphabetic %Number; #IMPLIED
+ mathematical %Number; #IMPLIED
+ hanging %Number; #IMPLIED
+ v-ideographic %Number; #IMPLIED
+ v-alphabetic %Number; #IMPLIED
+ v-mathematical %Number; #IMPLIED
+ v-hanging %Number; #IMPLIED
+ underline-position %Number; #IMPLIED
+ underline-thickness %Number; #IMPLIED
+ strikethrough-position %Number; #IMPLIED
+ strikethrough-thickness %Number; #IMPLIED
+ overline-position %Number; #IMPLIED
+ overline-thickness %Number; #IMPLIED
+>
+<!ELEMENT font-face-src (font-face-uri | font-face-name)+>
+<!ATTLIST font-face-src
+ %stdAttrs;
+>
+<!ELEMENT font-face-uri (font-face-format*)>
+<!ATTLIST font-face-uri
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+>
+<!ELEMENT font-face-format EMPTY>
+<!ATTLIST font-face-format
+ %stdAttrs;
+ string CDATA #IMPLIED
+>
+<!ELEMENT font-face-name EMPTY>
+<!ATTLIST font-face-name
+ %stdAttrs;
+ name CDATA #IMPLIED
+>
+<!ELEMENT definition-src EMPTY>
+<!ATTLIST definition-src
+ %stdAttrs;
+ %xlinkRefAttrs;
+ xlink:href %URI; #REQUIRED
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Metadata
+ ============================================================== -->
+<!ENTITY % metadataExt "">
+<!ELEMENT metadata (#PCDATA %metadataExt;)* >
+<!ATTLIST metadata
+ %stdAttrs;
+>
+<!-- ==============================================================
+ DECLARATIONS CORRESPONDING TO: Extensibility
+ ============================================================== -->
+<!ENTITY % foreignObjectExt "">
+<!ELEMENT foreignObject (#PCDATA %ceExt;%foreignObjectExt;)* >
+<!ATTLIST foreignObject
+ %stdAttrs;
+ %testAttrs;
+ %langSpaceAttrs;
+ externalResourcesRequired %Boolean; #IMPLIED
+ class %ClassList; #IMPLIED
+ style %StyleSheet; #IMPLIED
+ %PresentationAttributes-All;
+ transform %TransformList; #IMPLIED
+ %graphicsElementEvents;
+ x %Coordinate; #IMPLIED
+ y %Coordinate; #IMPLIED
+ width %Length; #REQUIRED
+ height %Length; #REQUIRED
+ %StructuredText;
+>
diff --git a/src/resources/entities/todo-v10.dtd b/src/resources/entities/todo-v10.dtd
new file mode 100755
index 0000000000..46e22cbb27
--- /dev/null
+++ b/src/resources/entities/todo-v10.dtd
@@ -0,0 +1,90 @@
+<!-- ===================================================================
+
+ Apache Todos DTD (Version 1.0)
+
+PURPOSE:
+ This DTD was developed to create a simple yet powerful document
+ type for software development todo lists for use with the Apache projects.
+ It is an XML-compliant DTD and it's maintained by the Apache XML
+ project.
+
+TYPICAL INVOCATION:
+
+ <!DOCTYPE document PUBLIC
+ "-//APACHE//DTD Todo Vx.yz//EN"
+ "http://xml.apache.org/DTD/todo-vxyz.dtd">
+
+ where
+
+ x := major version
+ y := minor version
+ z := status identifier (optional)
+
+NOTES:
+ It is important, expecially in open developped software projects, to keep
+ track of software changes that need to be done, planned features, development
+ assignment, etc. in order to allow better work parallelization and create
+ an entry point for people that want to help. This DTD wants to provide
+ a solid foundation to provide such information and to allow it to be
+ published as well as distributed in a common format.
+
+AUTHORS:
+ Stefano Mazzocchi <stefano@apache.org>
+
+FIXME:
+ - do we need anymore working contexts? (SM)
+
+CHANGE HISTORY:
+ 19991129 Initial version. (SM)
+ 19991225 Added actions element for better structure (SM)
+
+COPYRIGHT:
+ Copyright (c) @year@ The Apache Software Foundation.
+
+ Permission to copy in any form is granted provided this notice is
+ included in all copies. Permission to redistribute is granted
+ provided this file is distributed untouched in all its parts and
+ included files.
+
+==================================================================== -->
+
+<!-- =============================================================== -->
+<!-- Extend the Documentation DTD -->
+<!-- =============================================================== -->
+
+<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
+ possibly using public identifiers -->
+<!ENTITY % document-dtd SYSTEM "document-v10.dtd">
+%document-dtd;
+
+<!-- =============================================================== -->
+<!-- Common entities -->
+<!-- =============================================================== -->
+
+<!ENTITY % priorities "showstopper|high|medium|low|wish|dream">
+
+<!ENTITY % contexts "build|docs|code|admin|design">
+
+<!-- =============================================================== -->
+<!-- Document Type Definition -->
+<!-- =============================================================== -->
+
+<!ELEMENT todo (devs, actions*)>
+<!ATTLIST todo %common.att;
+ %title.att;>
+
+ <!ELEMENT devs (person+)>
+ <!ATTLIST devs %common.att;>
+
+ <!ELEMENT actions (action+)>
+ <!ATTLIST actions %common.att;
+ priority (%priorities;) #IMPLIED>
+
+ <!ELEMENT action (%content.mix;)*>
+ <!ATTLIST action %common.att;
+ assigned-to IDREF #IMPLIED
+ context (%contexts;) #REQUIRED>
+
+<!-- =============================================================== -->
+<!-- End of DTD -->
+<!-- =============================================================== -->