<?xml version="1.0" encoding="iso-8859-15"?>

<!ENTITY % varies "">
<!ENTITY % boolean "true | false">

<!-- Generische Definiton allgemeiner Elemente -->

<!-- Zusammenfassung von Listen in einer Entity -->

<!-- Entity die alle Prettyness Elemente zusammenfasst -->
<!ENTITY % prettyness "#PCDATA | b | k | i | br">
<!ELEMENT b ( #PCDATA ) >
<!ELEMENT k ( #PCDATA ) >
<!ELEMENT i ( #PCDATA ) >
<!ELEMENT br EMPTY>

<!-- Entity die alle "Block" Elemente zusammenfasst -->
<!ENTITY % block "p | line | link">
<!ELEMENT link ( uri | display | title* | target* )*  >
<!ATTLIST link hierarchyLevel CDATA #IMPLIED>
  <!ELEMENT uri ( #PCDATA ) >
  <!ELEMENT display ( %prettyness; )* >
  <!ELEMENT target (#PCDATA)  >
  
<!ELEMENT line ( %prettyness; | link )*  >
<!ELEMENT p  ( %prettyness; | link )* >

<!-- Entity die Listen Elemente zusammenfasst -->
<!ENTITY % lists "ol | ul">
<!ELEMENT ol (li*) >
<!ELEMENT ul (li*) >
<!ELEMENT li ( %prettyness; | link )* >




<!-- Root Element -->
<!ELEMENT document ( navigation | metainformation | main )*>

<!-- Strukturierung des Root-Elements in zwei Hauptbereiche -->
<!ELEMENT metainformation ( title,keywords?,description?,navigationName ) >
<!ELEMENT main ( license?,additionalresources?,content ) >
<!ELEMENT navigation ( entry )* >
<!ELEMENT entry ( link ) >

<!-- Untergeordnete Elemente von metainformation ausdefinieren -->
<!ELEMENT title (#PCDATA)  >
<!ELEMENT keywords (#PCDATA) >
<!ELEMENT description (#PCDATA) >
<!ELEMENT navigationName (#PCDATA) >

<!-- Direkt und indirekt untergeordnete Elemente von main ausdefinieren -->
<!ELEMENT license ( %prettyness; | %block; )*  >
<!ELEMENT additionalresources ( sourceFiles*,downloadFiles*,misc* ) >
  <!ELEMENT sourceFiles ( link+ ) >
  <!ELEMENT downloadFiles ( link+ ) >
  <!ELEMENT misc ( %block; )+ >  
<!ELEMENT content ( column+ ) >
  <!ELEMENT column ( headline,text ) >
    <!ELEMENT headline (#PCDATA) >
    <!ELEMENT text ( %block; | %lists; )+ >








