Thomas J.S.: Problem mit XSLT / SAXON

Beitrag lesen

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