﻿<!--
	XML Manuscript Authoring, Interchange and Delivery Environment 

		"-//RMI//DTD XML MAIDEN 2.1//EN"

	Annotated version of XML MAIDEN 2.1 DTD

	Developed by George Chavchanidze. Released on 11/06/2005 
	For additional information see http://xml-maiden.com 

	XML MAIDEN is science oriented, XML based markup language, 
	designed to simplify authoring, interchange and delivery of 
	short mathematical manuscripts (articles, letters, notes). 
	XML MAIDEN aims to capture general structure of scientific 
	articles (front matter, headers, sections, statements, paragraphs, 
	references etc) and basic structure of mathematical formulae in the way 
	suitable for further formatting with Cascading Style Sheets (2.1 or later).
	The present document briefly explains role of basic elements 
	used to encode mathematical articles in XML MAIDEN 2.1

ARTICLE: element 'article'

	Content of 'article' element reflects general structure of simple mathematical
	articles. It starts with front matter containing meta information about article
	(title, author(s), abstract, keywords, subject classes) and is followed by main content
	that may be divided into sections and subsections. Appendices, references and notes
	may appear at the end of article. Element 'article' has 'xmlns' attribute that places 
	XML MAIDEN elements in namespace http://xml-maiden.com
	In addition it may have attribute 'type' with possible values 'letter', 'note',
	'paper' and 'review' that specifies type of the article and 'version' attribute with 
	values 'new' or 'revised' that distinguishes original and revised versions of papers.
-->

<!ATTLIST article type (letter | note | paper | review) #IMPLIED version (new | revised) #IMPLIED xmlns CDATA #FIXED "http://xml-maiden.com">
<!ELEMENT article ((front | (title, ((authors, affiliation*)|(author, affiliation*)*)?, abstract?, ((((((keywords , subject?)|(subject , keywords?)), ((msc , pacs?)|(pacs , msc?))?)|(((msc , pacs?)|(pacs , msc?)), ((keywords , subject?)|(subject , keywords?))?)), reference*)|(reference+, ((((keywords , subject?)|(subject , keywords?)), ((msc , pacs?)|(pacs , msc?))?)|(((msc , pacs?)|(pacs , msc?)), ((keywords , subject?)|(subject , keywords?))?))?))?, info*, date*)), (section | (header?, (subsection | (acknowledgements | axiom | corollary | definition | editor | example | ((exercise | problem), solution?) | ((lemma | proposition | statement | theorem), proof?) | paragraph | referee | remark | summary | warning)+)+))+, ((references, appendix?)|(appendix, references?))?, notes?)>

<!--

FRONT MATTER: 'front', 'title', 'author', 'authors', 'affiliation', 'abstract', 
	'keywords', 'subject', 'msc', 'pacs', 'reference', 'info' and 'date' elements

	Front matter carries general information about article, such as article's title,
	authors' names and affiliations, abstract, keywords, subject class(es),
	journal/preprint/eprint references and other metainformation.
	Element 'title' specifies title of the article. Elements 'author' and 'authors'
	specify author name(s). They are followed by one or more 'affiliation' element(s) 
	that specify home institution(s) of author(s). Affiliation may have 'type' 
	attribute with possible value 'present' or 'permanent'. 
	XML MAIDEN allows two content models: in first case 'authors' element specifies 
	all author names and is followed by several 'affiliation' elements specifying institutions, 
	like

		<front>
		<title>Bicomplexes and integrable models</title>
		<authors><name xml:id="a">A. Dimakis</name>, <name xml:id="b">F. Müller-Hoissen</name></authors>
		<affiliation of="a">
		Department of Mathematics, University of the Aegean
		GR-83200 Karlovasi, Samos, Greece
		</affiliation>
		<affiliation of="b">
		Max-Planck-Institut fur Stromungsforschung
		Bunsenstrasse 10, D-37073 Gottingen, Germany
		</affiliation>
		<abstract>
		...
		</abstract>
		<subject>Exactly Solvable and Integrable Systems; Mathematical Physics</subject>
		<reference>J.Phys. A33 (2000) 6579-6592</reference>
		</front>

	in second case several 'author'/'affiliation' groups are used:

		<front>
		<title>Bicomplexes and integrable models</title>
		<author>A. Dimakis</author>
		<affiliation>
		Department of Mathematics, University of the Aegean
		GR-83200 Karlovasi, Samos, Greece
		</affiliation>
		<author>F. Müller-Hoissen</author>
		<affiliation>
		Max-Planck-Institut fur Stromungsforschung
		Bunsenstrasse 10, D-37073 Gottingen, Germany
		</affiliation>
		<abstract>
		...
		</abstract>
		<subject>Exactly Solvable and Integrable Systems; Mathematical Physics</subject>
		<reference>J.Phys. A33 (2000) 6579-6592</reference>
		</front>

	Element 'abstract' contains abstract of the article. It may be followed
	by either 'reference' or subject classes.

	Element 'keywords' lists key words and phrases that reflect subject of the article.

	Element 'subject' specifies subject class(es). It may have 'scheme' attribute that specifies 
	classification scheme. 
	Note however that for MSC (Mathematical Subject Classification, see http://www.ams.org/msc/) 
	and PACS (Physics and Astronomy Classification System, see http://publish.aps.org/PACS/) 
	numbers separate elements ('msc' and 'pacs' respectively) are reserved. Element 'msc' 
	has 'year' attribute that may be used to specify version of classification (1991, 2000).


	Element 'reference' specifies journal/preprint/eprint/doi/http reference.
	Type of reference may be specified via 'type' attribute. Possible values of this
	attribute are 'doi' (digital object identifier, see http://www.doi.org/),  
	'http' (url of online version of article), 'eprint' (eprint reference like nlin.SI/0006029), 
	'paper' (journal reference), 'preprint' (preprint number).

	Element 'info' carries the rest of meta information, like publisher, editor info etc.

	Element 'date', depending on value of 'event' attribute, specifies date when article was 
	accepted for publication, last modified, received for consideration, revised by author or published.
	Possible values of 'event' are: 'accepted', 'corrected', 'received', 'revised' and 'published'.

	Element 'front' is expected to envelop group of elements that constitute front matter 
	('title', 'author', 'authors', 'affiliation', 'abstract', 'keywords', 'subject', 
	'msc', 'pacs', 'reference', 'info' and 'date') however it may be omitted.
-->

<!ELEMENT front (title, ((authors, affiliation*)|(author, affiliation*)*)?, abstract?, ((((((keywords , subject?)|(subject , keywords?)), ((msc , pacs?)|(pacs , msc?))?)|(((msc , pacs?)|(pacs , msc?)), ((keywords , subject?)|(subject , keywords?))?)), reference*)|(reference+, ((((keywords , subject?)|(subject , keywords?)), ((msc , pacs?)|(pacs , msc?))?)|(((msc , pacs?)|(pacs , msc?)), ((keywords , subject?)|(subject , keywords?))?))?))?, info*, date*)>
<!ELEMENT title (#PCDATA | a | em | key | math | name | q | shell | stress)*>
<!ELEMENT author (#PCDATA | a | em | key | math | name | q | shell | stress)*>
<!ELEMENT authors (#PCDATA | a | em | key | math | name | q | shell | stress)*>
<!ATTLIST affiliation type (permanent | present) #IMPLIED>
<!ELEMENT affiliation (#PCDATA | a | em | line | key | math | name | q | shell | stress)*>
<!ELEMENT abstract (#PCDATA | a | em | line | key | math | name | q | shell | stress)*>
<!ELEMENT keywords (#PCDATA | a | em | line | key | math | name | q | shell | stress)*>
<!ATTLIST subject scheme CDATA #IMPLIED>
<!ELEMENT subject (#PCDATA | a | em | line | key | math | name | q | shell | stress)*>
<!ATTLIST msc year (1991 | 2000) #IMPLIED>
<!ELEMENT msc (#PCDATA | a | em | line | key | math | name | q | shell | stress)*>
<!ELEMENT pacs (#PCDATA | a | em | line | key | math | name | q | shell | stress)*>
<!ATTLIST reference type (doi | http | eprint | paper | preprint) #IMPLIED>
<!ELEMENT reference (#PCDATA | a | em | line | key | math | name | q | shell | stress)*>
<!ELEMENT info (#PCDATA | a | em | line | key | math | name | q | shell | stress)*>
<!ATTLIST date event (accepted | corrected | received | revised | published) #IMPLIED>
<!ELEMENT date  (#PCDATA | a | em | key | math | name | q | shell | stress)*>

<!--

HEADERS: 'header' element

	Element 'header' is used to mark headers. By dividing article into 
	sections, subsections, segments and subsegments up to four subheader 
	levels may be established.
-->

<!ELEMENT header (#PCDATA | a | em | key | math | name | q | shell | stress)*>

<!--

SECTIONS: 'section', 'subsection', 'segment', 'subsegment', 
		'appendix' and 'notes' elements

	Main content of the article may be broken into sections and subsections 
	using 'section', 'subsection', 'segment' and 'subsegment' elements. 
	'subsegment' element is expected to contain optional 'header' element followed 
	by one or more paragraphs or similar block level elements (theorems, 
	statements, remarks), 'segment' may contain optional 'header' followed
	by either 'subsegment' elements or paragraph-like elements.
	Subsections may contain optional 'header' followed by either 'segment'
	elements or paragraph-like elements. Section may contain optional 'header' 
	elements followed by either subsections or paragraph-like elements. 
	Element 'appendix' is expected to envelope appendix of the article that may be 
	placed before or after references. Element 'notes' that appears at the end of 
	article may contain any remarks, discussions and other information that 
	does not belong to main content of article.
-->

<!ELEMENT section (header?, (subsection | (acknowledgements | axiom | corollary | definition | editor | example | ((exercise | problem), solution?) | ((lemma | proposition | statement | theorem), proof?) | paragraph | referee | remark | summary | warning)+)+)>
<!ELEMENT subsection (header? , (segment | (acknowledgements | axiom | corollary | definition | editor | example | ((exercise | problem), solution?) | ((lemma | proposition | statement | theorem), proof?) | paragraph | referee | remark | summary | warning)+)+)>
<!ELEMENT segment (header? , (subsegment | (acknowledgements | axiom | corollary | definition | editor | example | ((exercise | problem), solution?) | ((lemma | proposition | statement | theorem), proof?) | paragraph | referee | remark | summary | warning)+)+)>
<!ELEMENT subsegment (header? , (acknowledgements | axiom | corollary | definition | editor | example | ((exercise | problem), solution?) | ((lemma | proposition | statement | theorem), proof?) | paragraph | referee | remark | summary | warning)+)>
<!ELEMENT appendix (header?, (subsection | (acknowledgements | axiom | corollary | definition | editor | example | ((exercise | problem), solution?) | ((lemma | proposition | statement | theorem), proof?) | paragraph | referee | remark | summary | warning)+)+)>
<!ELEMENT notes (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>

<!--

PARAGRAPHS:	'acknowledgements', 'axiom', 'corollary', 'definition', 'editor', 'example', 
		'exercise', 'problem', 'solution', 'lemma', 'proposition', 'statement', 'theorem', 
		'proof', 'paragraph', 'referee', 'remark', 'summary' and 'warning' elements

	Paragraphs (element 'paragraph') and other elements with paragraph-like content model such as 
	'acknowledgements', 'axiom', 'corollary', 'definition', 'example', 'exercise', 'problem', 
	'solution', 'lemma', 'proposition', 'statement', 'theorem', 'proof', 'remark' and 'summary' 
	are basic building blocks of XML MAIDEN documents. Their semantical role is self explanatory. 
	Note however that 'proof' element is expected to appear after 'lemma', 'proposition', 
	'statement' or 'theorem', while 'solution' element is expected to follow either 'problem' or 'exercise'.
	Element 'definition' may have attribute 'keywords' that may carry comma separated list of terms that are defined.
	Elements with paragraph-like content model 'editor' and 'referee' can be used by editors and referees
	to insert their comments and annotations into main content of paper (editor's name may be specified
	via 'name' attribute). 
-->

<!ELEMENT acknowledgements (#PCDATA | a | em | line | key | math | name | q | shell | stress)*>
<!ELEMENT axiom (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT corollary (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ATTLIST definition keywords CDATA #IMPLIED>
<!ELEMENT definition (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ATTLIST editor name CDATA #IMPLIED>
<!ELEMENT editor (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT example  (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT exercise  (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT lemma (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT paragraph (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT problem  (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT proof (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT proposition (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT referee (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT remark (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT solution  (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT statement (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT summary (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT theorem (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT warning (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>

<!--

SUBPARAGRAPH: 'subparagraph' element

	Element 'subparagraph' may be used to break paragraphs and paragraph-like 
	elements into several subparagraphs.
-->

<!ELEMENT subparagraph (#PCDATA | a | code | em | figure | formulae | formula | line | key | math | name | q | quote | shell | stress)*>

<!--

BIBLIORGAPHY: 'references', 'cite', 'who', 'what', 'where', 'when' and 'ref' elements

	Element 'references' carries list of bibliographic references.
	List of references in XML MAIDEN 2.1 admits two kinds of content models.
	First is simple list of references that may contain one or more 'ref' elements,
	like

		<references>
		<ref>Y. Kosmann-Schwarzbach, F. Magri, Poisson-Nijenhuis structures, Ann. Inst. Poincaré, 53, 35-81, 1990</ref>
		<ref>P. Libermann, C-M. Marle, Symplectic geometry and analytical mechanics, Reidel, Dordrecht-Boston, 1987</ref>
		<ref>C. Rogers, W. Schief, Bäcklund and Darboux transformations, Cambridge University Press, 2002</ref>
		</references>

	Second content model requires more detailed markup, in this case element 'references'
	conatains one or more 'cite' elements that enclose 'who', 'what', 'where' and 'when' containers.
	Element 'who' specifies author(s) of cited manuscript, 'what' carries title of the
	manuscript, 'where' may contain publisher info or journal reference and 'when' specifies
	date of publication. Both 'cite' and 'ref' elements may have 'doi', 'preprint', 'eprint', 'isbn'
	and 'issn' attributes that may be used to specify DOI, preprint numbers, eprint reference and 
	isbn or issn numbers respectively.

	Example:

		<references>
		<cite xml:id="r1">
			<who>Y. Kosmann-Schwarzbach, F. Magri</who>
			<what>Poisson-Nijenhuis structures</what>
			<where>Ann. Inst. Poincaré, 53, 35-81</where>
			<when>1990</when>
		</cite>
		<cite xml:id="r2">
			<who>P. Libermann, C-M. Marle</who>
			<what>Symplectic geometry and analytical mechanics</what>
			<where>Reidel, Dordrecht-Boston</where>
			<when>1987</when>
		</cite>
		<cite xml:id="r3">
			<who>C. Rogers, W. Schief</who>
			<what>Bäcklund and Darboux transformations</what>
			<where>Cambridge University Press</where>
			<when>2002</when>
		</cite>
		</references>

-->

<!ELEMENT references (ref+|cite+)>
<!ATTLIST ref doi CDATA #IMPLIED eprint CDATA #IMPLIED preprint CDATA #IMPLIED isbn CDATA #IMPLIED issn CDATA #IMPLIED>
<!ELEMENT ref (#PCDATA | a | em | line | key | math | name | q | shell | stress)*>
<!ATTLIST cite doi CDATA #IMPLIED eprint CDATA #IMPLIED preprint CDATA #IMPLIED isbn CDATA #IMPLIED issn CDATA #IMPLIED>
<!ELEMENT cite (who, ((what, where?) | where), when)>
<!ELEMENT who (#PCDATA | a | em | key | math | name | q | shell | stress)*>
<!ELEMENT what (#PCDATA | a | em | key | math | name | q | shell | stress)*>
<!ELEMENT where (#PCDATA | a | em | key | math | name | q | shell | stress)*>
<!ELEMENT when (#PCDATA | a | em | key | math | name | q | shell | stress)*>

<!--

INLINE CONTAINERS: 'em', 'shell' and 'stress' elements

	Element 'em' and 'stress' are inline container that may be used to emphasize or stress
	certain words or sentences. Element 'shell' is general purpose inline container similar 
	to XHTML 'span' element. 
-->

<!ELEMENT em (#PCDATA | a | em | key | math | name | q | shell | stress)*>
<!ELEMENT shell (#PCDATA | a | em | key | math | name | q | shell | stress)*>
<!ELEMENT stress (#PCDATA | a | em | key | math | name | q | shell | stress)*>

<!--

ABBREVIATIONS, KEYWORDS AND NAMES: 'key' and 'name' elements

	Element 'key' may be used to stress abbreviations, key words, 
	phrases and special terms used in article. Using 'definition' attribute 
	one may provide brief definition of key word, special term, abbreviation.
	Element 'name' carries name(s) of persons, organisations, places, 
	activities. It may have attribute 'full' that specifies full name or title. 
	Attribute 'pronounce' says how element's content should be pronounced, for example
	<key definition="Manuscript Authoring, Interchange and Delivery Environment" pronounce="meidn">MAIDEN</key>
-->

<!ATTLIST key definition CDATA #IMPLIED pronounce CDATA #IMPLIED>
<!ELEMENT key (#PCDATA)>
<!ATTLIST name title CDATA #IMPLIED pronounce CDATA #IMPLIED>
<!ELEMENT name (#PCDATA)>

<!--

QUOTATIONS: 'q' and 'quote' elements


	Element 'q' may be used to enclose small inline quatations,
	while 'quote' can be used to mark larger block level quotes. 
	Attribute 'author' may specify author of the quotation.

-->

<!ATTLIST q author CDATA #IMPLIED>
<!ELEMENT q (#PCDATA | a | em | key | math | name | q | shell | stress)*>
<!ATTLIST quote author CDATA #IMPLIED>
<!ELEMENT quote (#PCDATA | a | code | em | figure | formulae | formula | line | key | math | name | q | quote | shell | stress)*>

<!--

CODE: 'code' element

	Block level element 'code' may be used to embed islands of preformatted
	code, markup etc. into XML MAIDEN documents. Attribute 'language' may be
	used to specify language, like

		<code language="css">
		matrix
			{display:inline-table}
		</code>
-->

<!ATTLIST code language CDATA #IMPLIED>
<!ELEMENT code (#PCDATA | a)*>


<!--

LISTS: 'list' and 'item' elements


	Element 'list' is expected to mark lists, it should contain
	at least one 'item' element.
		<list>
		<item>Red</item>
		<item>Green</item>
		<item>Blue</item>
		</list>
-->

<!ELEMENT list (item, item+)>
<!ELEMENT item  (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>

<!--

TABLES: 'table', 'caption', 'tr', 'th' and 'td' elements

Tables in XML MAIDEN are used to organize data in tabular form.
Element 'table' encloses whole table and contains optional 'caption'
element that specifies table caption, followed by at least one 'tr'
element that represents row or group of cells. Element 'th' is table cell 
that plays the role of row or column header. Element 'td' is table cell 
that carries data. Attribute 'summary' may be used to provide brief description
of table's content.

Example:
	<table summary="Character codes">
	<caption>Unicode characters</caption>
	<tr><th>Character</th><th>Decimal code</th><th>Hexadecimal Code</th></tr>
	<tr><td>A</td><td>0065</td><td>0041</td></tr>
	<tr><td>B</td><td>0066</td><td>0042</td></tr>
	<tr><td>C</td><td>0067</td><td>0043</td></tr>
	</table>
-->

<!ATTLIST table summary CDATA #IMPLIED>
<!ELEMENT table (caption?, tr+)>
<!ELEMENT caption (#PCDATA | a | em | key | math | name | q | shell | stress)*>
<!ELEMENT tr (th|td)+>
<!ELEMENT th  (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>
<!ELEMENT td  (#PCDATA | a | code | em | figure | formulae | formula | list | line | key | math | name | q | quote | shell | stress | subparagraph | table)*>

<!--

HYPERLINKS: 'a' element

	Element 'a' is used to mark hyperlinks. It has attribute 'href' pointing to target
	URL and optional 'title' attribute providing short description of target.
	For interoperability reasons element is bounded to XHTML namespace http://www.w3.org/1999/xhtml
	for the same reasons it is recommended to declare namespace in internal DTD subset
	(external DTD is not processed by non-validating XML parsers).
-->

<!ATTLIST a href CDATA #REQUIRED title CDATA #IMPLIED xmlns CDATA #FIXED "http://www.w3.org/1999/xhtml">
<!ELEMENT a (#PCDATA)>

<!--

INTERNAL REFERENCES: 'cross', 'for', 'of', 'on' and 'headers' attributes

	To indicate how different parts of XML MAIDEN document are
	interrelated one may use additional attributes of IDREFS type.
	The value of such attributes is ID or space separated list 
	of IDs of related elements. 
	
	Example:

		<statement xml:id="a">Some statement</statement>
		<statement xml:id="b">Another statement</statement>
		<remark on="a">Remark on statement a</remark>
		<remark on="b">Remark on statement b</remark>
		<summary of="a b">Summary of statements a and b</summary>


-->

<!ATTLIST affiliation of IDREFS #IMPLIED>
<!-- 
Points to authors's name who's affiliation is marked 
-->

<!ATTLIST axiom cross IDREFS #IMPLIED>
<!-- 
Points to lemma(s), theorem(s), statement(s) and other part(s) of document 
that rely on current axiom 
-->

<!ATTLIST cite cross IDREFS #IMPLIED>
<!-- 
Points to hyperlinks or other elements that reference current item 
-->

<!ATTLIST corollary of IDREFS #IMPLIED>
<!-- 
Points to axiom(s), lemma(s), theorem(s), statement(s) or other part(s) of document 
that corollary is derived from 
-->

<!ATTLIST definition cross IDREFS #IMPLIED>
<!-- 
Points to part(s) of document where current definition is used/referenced.
-->

<!ATTLIST editor cross IDREFS #IMPLIED>
<!-- 
Points to part(s) of document that editorial comments apply to.
-->

<!ATTLIST example of IDREFS #IMPLIED>
<!-- 
Points to part(s) of document that current example is intended to illustrate/complement.
-->

<!ATTLIST exercise for IDREFS #IMPLIED>
<!-- 
Points to part(s) of document that current exercise is intended to illustrate/complement.
-->

<!ATTLIST key cross IDREFS #IMPLIED>
<!-- 
Points to part(s) of document where current keyword is used/referenced.
-->

<!ATTLIST lemma cross IDREFS #IMPLIED>
<!-- 
Points to other lemma(s), theorem(s), statement(s) and other part(s) of document 
that rely on current lemma
-->

<!ATTLIST notes on IDREFS #IMPLIED>
<!-- 
Points to part(s) of document that notes apply to.
-->

<!ATTLIST proof of IDREFS #IMPLIED>
<!-- 
Points to lemma(s), proposition(s), statement(s) or theorem(s) 
that are being proved.
-->

<!ATTLIST remark on IDREFS #IMPLIED>
<!-- 
Points to part(s) of document that remark applies to.
-->

<!ATTLIST ref cross IDREFS #IMPLIED>
<!-- 
Points to hyperlinks or other elements that reference current item 
-->

<!ATTLIST referee cross IDREFS #IMPLIED>
<!-- 
Points to part(s) of document that referee's comments apply to.
-->

<!ATTLIST solution of IDREFS #IMPLIED>
<!-- 
Points to exercise(s) or problem(s) that are being solved.
-->

<!ATTLIST summary of IDREFS #IMPLIED>
<!-- 
Points to part(s) of document that are summarized in current summary.
-->

<!ATTLIST table cross IDREFS #IMPLIED>
<!-- 
Points to part(s) of document that use/reference current table.
-->

<!ATTLIST td headers IDREFS #IMPLIED>
<!-- 
Points to table header(s) that current table cell is associated with.
-->


<!ATTLIST warning on IDREFS #IMPLIED>
<!-- 
Points to part(s) of document that warning applies to.
-->


<!--

EXTERNAL OBJECTS: no element is reserved for this purpose

In current version of XML MAIDEN no element is reserved for images
and other external objects. One may use either CSS Generated Content, 
XML external unparsed entities or other methods of embedding
external objects in XML document.


LINE BREAKS: 'line' element

	Empty element 'line' is used to generate line breaks.
	It is defined in mathematical part of DTD.

MATHEMATICAL FORMULAE: 'formula', 'formulae' and 'math' elements

XML MAIDEN 2.1 comes with its own mathematical markup that can be used
to compose complex mathematical formulae. These formulae can be embedded
in article via 'math', 'formula' and 'formulae' elements used to mark
inline mathematical expression, displayed formulae (block level equations)
and groups of formulae (equation arrays).
Mathematical part of XML MAIDEN is described in separate document.
-->

<!ENTITY % maiden SYSTEM "ann-math.dtd"> %maiden;


<!--

CORE ATTRIBUTES: 'xml:id', 'xml:lang', 'role' and 'token' 


	ID type 'xml:id' attribute is unique identifier 
			see http://www.w3.org/TR/xml-id/
	that can be used to assign unique name to given part of document. 
	This unique name can be used as fragment identifier in hyperlinks and 
	as ID in internal references specified via attributes of IDREFS type.

	Attribute 'xml:lang' specifies language of content and may be applied
	to any XML MAIDEN element, excluding empty and mathematics oriented ones.

	'role' attribute is used to enrich document structure with semantics,
	and may specify semantical role of the given element.
		
	'token' is general purpose attribute, can be used to enrich document 
	structure by grouping/dividing elements into classes. 
	Its value is of NMTOKEN type.
-->

<!ATTLIST a role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST abstract role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST acknowledgements role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST affiliation role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST appendix role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST article role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST author role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST authors role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST axiom role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST caption role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST cite role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST code role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST corollary role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST date role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST definition role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST editor role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST em role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST example role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST exercise role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST front role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST header role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST info role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST item role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST key role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST keywords role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST lemma role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST list role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST msc role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST name role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST notes role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST pacs role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST paragraph role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST problem role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST proof role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST proposition role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST q role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST quote role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST remark role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST ref role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST referee role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST reference role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST references role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST section role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST segment role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST shell role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST solution role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST statement role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST stress role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST subject role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST subparagraph role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST subsection role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST subsegment role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST summary role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST table role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST td role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST th role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST theorem role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST title role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST tr role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST warning role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST who role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST what role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST when role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>
<!ATTLIST where role CDATA #IMPLIED token NMTOKEN #IMPLIED xml:id ID #IMPLIED xml:lang NMTOKEN #IMPLIED>

<!-- XML MAIDEN 2.1 DTD ENDS HERE -->