Hallo,
mal eine Frage an alle, die sich mit XML DTDs auskennen.
Ich definiere in der Datie entities/contents.ent
Entities zu den einzelnen Kapiteln eines DocBooks wie z. B. &contents.about; und &contents.installation; diese Entities werden dann in einer anderen .xml Datei, die vorher die entities/contents.ent einbindet, aufgerufen. Die Contents XML Dateien liegen im Ordner contents/
Nun dachte ich mir, ich will in der contents.ent nicht ständig den Pfad zu den Content XML Dateien neu abtippen und wollte deshalb die Entity &contentsDir; definieren (und zwar als "../contents/" - weil relativ zum entities/ Verzeichnis).
Dabei liefert mit Saxon 6.5.3 allerdings diese Meldung:
Offensichtlich wird in der Pfadangabe das &contentsDir; Entity nicht aufgeschlüsselt. Dabei sind laut selfHTML und laut docBook Referenz verschachtelte Entities durchaus möglich und erlaubt.
Wenn ich aus den contents.about und contents.installation Entities das SYSTEM lösche, also keine externen Entities mache, wird das &contentsDir; Entity vorher aufgeschlüsselt - nur offensichtlich nicht bei externen Entities.
Gibts dafür einen Workaround oder ist das so vorgesehen?
mal eine Frage an alle, die sich mit XML DTDs auskennen.
Ich definiere in der Datie entities/contents.ent
Entities zu den einzelnen Kapiteln eines DocBooks wie z. B. &contents.about; und &contents.installation; diese Entities werden dann in einer anderen .xml Datei, die vorher die entities/contents.ent einbindet, aufgerufen. Die Contents XML Dateien liegen im Ordner contents/
Nun dachte ich mir, ich will in der contents.ent nicht ständig den Pfad zu den Content XML Dateien neu abtippen und wollte deshalb die Entity &contentsDir; definieren (und zwar als "../contents/" - weil relativ zum entities/ Verzeichnis).
Code:
<!ENTITY contentsDir "../contents/"> <!ENTITY contents.about SYSTEM "&contentsDir;about.xml"> <!ENTITY contents.installation SYSTEM "&contentsDir;installation.xml">
Error reported by XML parser: Cannot read from file:/C:/doc/de/entities/&contentsDir;about.xml
(C:\doc\de\entities\&contentsDir;about.xml (Das System kann die angegebene Datei nicht finden))
Transformation failed: Run-time errors were reported
(C:\doc\de\entities\&contentsDir;about.xml (Das System kann die angegebene Datei nicht finden))
Transformation failed: Run-time errors were reported
Wenn ich aus den contents.about und contents.installation Entities das SYSTEM lösche, also keine externen Entities mache, wird das &contentsDir; Entity vorher aufgeschlüsselt - nur offensichtlich nicht bei externen Entities.
Gibts dafür einen Workaround oder ist das so vorgesehen?
Kommentar