<!-- DTD for CommonMark xml export format --> <!ENTITY % block 'block_quote|list|code_block|paragraph|heading|thematic_break|html_block|custom_block'> <!ENTITY % inline 'text|softbreak|linebreak|code|emph|strong|link|image|html_inline|custom_inline'> <!ELEMENT document (%block;)*> <!ATTLIST document xmlns CDATA #FIXED "http://commonmark.org/xml/1.0"> <!-- block elements --> <!ELEMENT block_quote (%block;)*> <!ELEMENT list (item)+> <!ATTLIST list type (bullet|ordered) #REQUIRED start CDATA #IMPLIED tight (true|false) #REQUIRED delimiter (period|paren) #IMPLIED> <!ELEMENT item (%block;)*> <!ELEMENT code_block (#PCDATA)> <!ATTLIST code_block xml:space CDATA #FIXED "preserve" info CDATA #IMPLIED> <!ELEMENT paragraph (%inline;)*> <!ELEMENT heading (%inline;)*> <!ATTLIST heading level (1|2|3|4|5|6) #REQUIRED> <!ELEMENT thematic_break EMPTY> <!ELEMENT html_block (#PCDATA)> <!ATTLIST html_block xml:space CDATA #FIXED "preserve"> <!ELEMENT custom_block (%inline;|%block;|item)*> <!ATTLIST custom_block on_enter CDATA #IMPLIED on_exit CDATA #IMPLIED> <!-- inline elements --> <!ELEMENT text (#PCDATA)> <!ELEMENT softbreak EMPTY> <!ELEMENT linebreak EMPTY> <!ELEMENT code (#PCDATA)> <!ATTLIST code xml:space CDATA #FIXED "preserve"> <!ELEMENT emph (%inline;)*> <!ELEMENT strong (%inline;)*> <!ELEMENT link (%inline;)*> <!ATTLIST link destination CDATA #REQUIRED title CDATA #IMPLIED> <!ELEMENT image (%inline;)*> <!ATTLIST image url CDATA #REQUIRED title CDATA #IMPLIED> <!ELEMENT html_inline (#PCDATA)> <!ATTLIST html_inline xml:space CDATA #FIXED "preserve"> <!ELEMENT custom_inline (%inline;)*> <!ATTLIST custom_inline on_enter CDATA #IMPLIED on_exit CDATA #IMPLIED> <!-- All elements can have a sourcepos attribute. The format is SL:SC-EL:EC where SL = number of starting line (first line = 1) EL = number of ending line SC = number of starting column (first column = 1) EC = number of ending column --> <!ATTLIST ANY sourcepos CDATA #IMPLIED>