| <!ENTITY % entities 'internalEntityDecl|externalEntityDecl|unparsedEntityDecl'> |
| <!ENTITY % decls 'elementDecl|contentModel|attlist|notationDecl|%entities;'> |
| <!ENTITY % markup 'comment|processingInstruction|%decls;'> |
| <!ENTITY % cmodel 'any|empty|group'> |
| |
| <!ENTITY % uri 'CDATA'> |
| <!ENTITY % pubid 'CDATA'> |
| <!ENTITY % boolean '(true|false)'> |
| <!ENTITY % token 'NMTOKEN'> |
| <!ENTITY % string 'CDATA'> |
| <!ENTITY % septype 'CDATA'> <!-- values: { ',' or '|' } --> |
| <!ENTITY % occurtype 'CDATA'> <!-- values: { '?' or '*' or '+' } --> |
| |
| <!ELEMENT dtd ((parameterEntity|%markup;)*,externalSubset?)> |
| <!ATTLIST dtd sysid %uri; #IMPLIED> |
| |
| <!ELEMENT externalSubset (parameterEntity|%markup;)*> |
| <!ATTLIST externalSubset sysid %uri; #IMPLIED> |
| |
| <!ELEMENT internalEntityDecl EMPTY> |
| <!ATTLIST internalEntityDecl name %token; #REQUIRED |
| value %string; #REQUIRED> |
| <!ELEMENT externalEntityDecl EMPTY> |
| <!ATTLIST externalEntityDecl name %token; #REQUIRED |
| pubid %pubid; #IMPLIED |
| sysid %uri; #REQUIRED> |
| <!ELEMENT unparsedEntityDecl EMPTY> |
| <!ATTLIST unparsedEntityDecl name %token; #REQUIRED |
| pubid %pubid; #IMPLIED |
| sysid %uri; #IMPLIED |
| notation %token; #REQUIRED> |
| |
| <!ELEMENT elementDecl EMPTY> |
| <!ATTLIST elementDecl ename %token; #REQUIRED |
| content %string; #REQUIRED> |
| |
| <!ELEMENT contentModel (parameterEntity|%cmodel;)> |
| |
| <!ELEMENT any EMPTY/> |
| |
| <!ELEMENT empty EMPTY/> |
| |
| <!ELEMENT group ((parameterEntity|(pcdata,separator))?,(parameterEntity|group|element|separator|occurrence)*> |
| |
| <!ELEMENT pcdata EMPTY> |
| |
| <!ELEMENT element EMPTY> |
| <!ATTLIST element name %token; #REQUIRED> |
| |
| <!ELEMENT separator EMPTY> |
| <!ATTLIST separator type %septype; #REQUIRED> |
| |
| <!ELEMENT occurrence EMPTY> |
| <!ATTLIST occurrence type %occurtype; #IMPLIED> |
| |
| <!ELEMENT attlist (parameterEntity|attributeDecl)+> |
| <!ATTLIST attlist ename %token; #REQUIRED> |
| |
| <!ELEMENT attributeDecl (parameterEntity|enumeration)*> |
| <!ATTLIST attributeDecl ename %token; #REQUIRED |
| aname %token; #REQUIRED |
| atype %string; #REQUIRED |
| required %boolean; #IMPLIED |
| fixed %boolean; #IMPLIED |
| default %string; #IMPLIED> |
| |
| <!ELEMENT enumeration EMPTY> |
| <!ATTLIST enumeration value %string; #REQUIRED> |
| |
| <!ELEMENT notationDecl EMPTY> |
| <!ATTLIST notationDecl name %token; #REQUIRED |
| pubid %pubid; #IMPLIED |
| sysid %uri; #REQUIRED> |
| |
| <!ELEMENT parameterEntity ANY> |
| <!ATTLIST parameterEntity name %token; #REQUIRED |
| pubid %pubid; #IMPLIED |
| sysid %uri; #REQUIRED> |
| |
| <!ELEMENT textDecl EMPTY> |
| <!ATTLIST textDecl version %string; #IMPLIED |
| encoding %string; #REQUIRED> |
| |
| <!ELEMENT comment (#PCDATA)> |
| |
| <!ELEMENT processingInstruction EMPTY> |
| <!ATTLIST processingInstruction target %token; #REQUIRED |
| data %string; #IMPLIED> |