Wikipedia.DTD

From Meta, a Wikimedia project coordination wiki

Jump to: navigation, search
Historical This page is obsolete or no longer maintained, and kept for historical interest. If you want to revive discussion regarding the subject, you can use the talk page or start a discussion on the community discussion page.

This is a first version of Wikipedia DTD. See also Wikipedia DTD/Examples.

<!--===========================================================================
This is a draft of Wikipedia DTD,
an interchangable XML representation of the content of Wikipedia articles.

Author: Jakob Voss
Date: 4-11-2003 (up to now no version number)

This DTD is published under the GNU Free Documentation License.

Missing parts:
- table, dl, pre, div, ruby, font, var
- many attributes of HTML-like-elements
============================================================================-->
<!ELEMENT article (meta, (text | redirect))>

<!ENTITY % possible-namespaces "(special | user | wikipedia | image)">

<!ENTITY % local-link-model " 
	talk (talk) #IMPLIED
	namespace %possible-namespaces; #IMPLIED
	article CDATA #REQUIRED
">

<!ELEMENT meta (title, status?, interwiki*, history?)>

<!ELEMENT title EMPTY>
<!ATTLIST title	
	interwiki NMTOKEN #IMPLIED
	%local-link-model;
>

<!ELEMENT interwiki EMPTY>
<!ATTLIST interwiki	
	language NMTOKEN #REQUIRED
	%local-link-model;
>

<!ELEMENT status EMPTY>
<!ATTLIST status
	protected (protected) #IMPLIED
	counter CDATA #IMPLIED
	notoc (notoc) #IMPLIED
>

<!ELEMENT history (edit)+>

<!ELEMENT edit (status?, interwiki*, (text | redirect)?)>
<!ATTLIST edit
	user CDATA #REQUIRED
	comment CDATA #IMPLIED
	timestamp CDATA #IMPLIED
	minor (minor) #IMPLIED
>

<!ELEMENT redirect EMPTY>
<!ATTLIST redirect	
	%local-link-model;
>


<!--== Wikitext ==-->

<!ENTITY % wikitext-block "ul | ol | center | blockquote | pbr | hr | h1 | h2 | h3 | h4 | h5 | h6">

<!ENTITY % wikitext-inline-format "b | i | sub | sup | big | small | tt | u | br | nowiki">
<!ENTITY % wikitext-inline-special "math | wikivar | link | reference | url | media">

<!ENTITY % wikitext-inline "%wikitext-inline-format; | %wikitext-inline-special;">

<!ELEMENT text (#PCDATA | %wikitext-block; | %wikitext-inline;)*>

<!--== Block elements == -->

<!ELEMENT h1 (#PCDATA | %wikitext-inline;)*>
<!ELEMENT h2 (#PCDATA | %wikitext-inline;)*>
<!ELEMENT h3 (#PCDATA | %wikitext-inline;)*>
<!ELEMENT h4 (#PCDATA | %wikitext-inline;)*>
<!ELEMENT h5 (#PCDATA | %wikitext-inline;)*>
<!ELEMENT h6 (#PCDATA | %wikitext-inline;)*>

<!ELEMENT hr EMPTY>

<!ELEMENT indent (#PCDATA | %wikitext-inline;)*>
<!ATTLIST indent
  depth CDATA '1'
>

<!ELEMENT ol (li | ol | uli)+>
<!ELEMENT ul (li | oli | uli)+>
<!ELEMENT oli (li | ol | uli)+>
<!ELEMENT uli (li | oli | uli)+>

<!ELEMENT li (#PCDATA | %wikitext-inline;)*>

<!ATTLIST blockquote
	cite CDATA #IMPLIED
>

<!ELEMENT center (#PCDATA | %wikitext-inline;)*>

<!ELEMENT blockquote (#PCDATA | %wikitext-inline;)*>

<!ELEMENT pbr EMPTY>

<!--== Inline elements == -->

<!ELEMENT nowiki (#PCDATA)>

<!ELEMENT link (#PCDATA | %wikitext-inline-format;)*>
<!ATTLIST link
	interwiki NMTOKEN #IMPLIED
	%local-link-model;
>

<!ELEMENT math (#PCDATA)>
<!ATTLIST math 
  image ENTITY #IMPLIED
>

<!ELEMENT url (#PCDATA | %wikitext-inline-format;)*>
<!ATTLIST url
  href CDATA #REQUIRED
>

<!ELEMENT reference EMPTY>
<!ATTLIST reference
   system (email | RFC | ISBN) #REQUIRED
   value CDATA #IMPLIED
>

<!ELEMENT media EMPTY>
<!ATTLIST media
	name CDATA #REQUIRED
  data ENTITY #IMPLIED
>

<!ELEMENT b (#PCDATA | i | big | small | sub | sup | tt | u | br | %wikitext-inline-special;)*>
<!ELEMENT i (#PCDATA | b | big | small | sub | sup | tt | u | br | %wikitext-inline-special;)*>

<!ELEMENT tt (#PCDATA | b | i | big | small | sub | sup | u | br | %wikitext-inline-special;)*>
<!ELEMENT u (#PCDATA | b | i | big | small | sub | sup | tt | br | %wikitext-inline-special;)*>
<!ELEMENT sub (#PCDATA | %wikitext-inline;)*>
<!ELEMENT sup (#PCDATA | %wikitext-inline;)*>
<!ELEMENT big (#PCDATA | %wikitext-inline;)*>
<!ELEMENT small (#PCDATA | %wikitext-inline;)*>
<!ELEMENT br EMPTY>

<!ELEMENT wikivar EMPTY>
<!ATTLIST wikivar
  name (CURRENTMONTH | CURRENTMONTHNAME | CURRENTDAY | CURRENTDAYNAME |
        CURRENTYEAR | CURRENTTIME | NUMBEROFARTICLES)
  #REQUIRED
>