Hallo,
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<!DOCTYPE agb SYSTEM "/dtd/agb.dtd">
<?xml-stylesheet type="text/css" href="styles.css"?><agb date="01.01.2002" updated="01.01.2005">
<section name="Allgemeines" number="1.0">
<p>blah blah</p>
</section>
</agb>agb.dtd
<!DOCTYPE [ agb
<!ELEMENT agb (topic)+>
<!ELEMENT section (subtopic | p)+>
<!ELEMENT p (#PCDATA)><!ATTLIST agb
date NMTOKEN #REQUIRED
updated NMTOKEN #REQUIRED<!ATTLIST section
name CDATA #REQUIRED
number CDATA #REQUIRED]]>
Etweder ist das eine exteren DTD dann hat ein "<!DOCTYPE [ agb" darin nichts zu suchen, oder ein interner Subset, dann gehört sie ins XML, aber dann so
<!DOCTYPE agb [
Dadurch ist es egal was du hast (exteren DTD oder interne Submenge), deine DTD ist ungültig. Saxon wird schon hier die Verarbeitung abbrechen.
Weiter muss laut deiner DTD ein <agb> eine oder mehrere <topic> enthalten, was dein XML nicht macht und somit wäre es auch dann ungültig, wenn deine DTD an sich korrekt wäre. Zweiter Abbruch.
Dann ist "subtopic " gar nicht in der DTD deklariert. Drietter Abbruchgrund.
Grüße
Thomas