XSLT / Verweis auf DTD hinzufügen / Output XML
snowwhite
- xsl
Hallo,
ich möchte gern über XSLT ein XML-Dokument in XML ausgeben und dabei den Verweis auf eine DTD hinzufügen.
In meinem urspünglichen XML-Text ist kein Verweis auf eine DTD
Den Verweis auf die DTD möchte ich über das Stylesheet hinzufügen.
Ich habe schon ein paar Sachen ausprobiert, aber leider hat nichts funktioniert.
...
xsl:text
<!DOCTYPE regeln SYSTEM "regeln.dtd">
</xsl:text>
...
Oder die Zeile über einen globalen Parameter einfügen.
Das hat alles nicht funktioniert.
Vielleicht kann mir jemand von Euch einen kleinen Tipp geben, wie ich mein Problem lösen kann.
Vielen Dank auf jeden Fall schon im voraus.
Viele Grüße
snowwhite
Hallo,
ich möchte gern über XSLT ein XML-Dokument in XML ausgeben und dabei den Verweis auf eine DTD hinzufügen.
<xsl:output doctype-system="http//example.com/foo.dtd" ... >
http://de.selfhtml.org/xml/darstellung/xsltelemente.htm#output
Grüße
Thomas
Hallo ihr beiden,
vielen Dank für Eure schnelle Hilfe!:o)
Es hat funktioniert.
Viele Grüße
snowwhite
Hallo,
ich habe jetzt doch noch einmal eine Frage.
Mit doctype-system hat die automatische Erzeugung des DTD-Verweises geklappt.
Ich habe das jetzt mit doctype-public versucht, aber leider funktioniert das nicht.
Was mache ich falsch?
<xsl:output method="xml"
doctype-public="-//W3C//DTD HTML 4.01//EN
http://www.w3.org/TR/html4/regeln.dtd"/>
Vielen Dank.
Viele Grüße
snowwhite
Hello out there!
Was mache ich falsch?
<xsl:output method="xml"
doctype-public="-//W3C//DTD HTML 4.01//EN
http://www.w3.org/TR/html4/regeln.dtd"/>
Zum einen passt die XML-Ausgabemethode [XSLT §16.1] nicht zu HTML 4.01; du musst die HTML-Ausgabemethode [XSLT §16.2] verwenden.
Oder du lässt die das Ergebnis als XHTML 1.0 ausgeben.
Zum anderen ist der system identifier falsch, der ist für HTML 4.01 Strict "http://www.w3.org/TR/html4/strict.dtd".
Und schließlich:
„doctype-system gibt den System-Identifizierer an, der in der Dokumenttyp-Deklaration verwendet wird.“ [XSLT §16] Das wäre also "http://www.w3.org/TR/html4/strict.dtd".
„doctype-public gibt den öffentlichen Identifizierer an, der in der Dokumenttyp-Deklaration verwendet wird.“ [ebenda] Das wäre also "-//W3C//DTD HTML 4.01//EN".
See ya up the road,
Gunnar
Hallo,
vielen Dank für Deine Antwort.
Sorry, ich hätte vielleicht kein Beispiel einfügen sollen, sondern den Verweis, den ich wirklich einfügen möchte.
Also, ich möchte genau diese Zeile im XML-Output haben:
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd" []>
Wenn ich diese Zeile
...
doctype-public="-//OASIS//DTD DITA Task//EN" "task.dtd" []" />
in mein Stylesheet schreibe, wird der DTD-Verweis nicht in den XML-Output geschrieben
und wenn ich diese Version benutze auch nicht:
...
doctype-public=" '-//OASIS//DTD DITA Task//EN' 'task.dtd' " />
Ich weiß immer noch nicht genau, was ich falsch mache.
Ich vermute, es liegt irgendwie an den "" und ' '.
Vielen Dank.
snowwhite
Hello out there!
Also, ich möchte genau diese Zeile im XML-Output haben:
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd" []>
'[]' soll wozu gut sein?
doctype-public="-//OASIS//DTD DITA Task//EN" "task.dtd" []"
doctype-public=" '-//OASIS//DTD DITA Task//EN' 'task.dtd' "Ich weiß immer noch nicht genau, was ich falsch mache.
Lies mein Posting noch einmal. Den Teil nach „Und schließlich:“ noch zweimal.
See ya up the road,
Gunnar
Hallo Gunnar,
stimmt, du hattest das, was Thomas mir noch einmal gesagt hat, schon geschrieben.
Aber irgendwie habe ich das von Thomas besser verstanden als das von dir.
Sorry.
Und vielen Dank für Deine Unterstützung.:o)
Viele Grüße
snowwhite
Hallo,
Also, ich möchte genau diese Zeile im XML-Output haben:
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd" []>Wenn ich diese Zeile
...
doctype-public="-//OASIS//DTD DITA Task//EN" "task.dtd" []" />
doctype-public=" '-//OASIS//DTD DITA Task//EN' 'task.dtd' " />
Ich weiß immer noch nicht genau, was ich falsch mache.
doctype-public="-//OASIS//DTD DITA Task//EN"
doctype-system="task.dtd"
Das [] kannst du nicht einfügen.
Grüße
Thomas
Hello out there!
doctype-public="-//OASIS//DTD DITA Task//EN"
doctype-system="task.dtd"
Sagte ich das nicht schon?
Ich hatte Schneeweißchen durchaus zugetraut, 'gibt den .* Das wäre also' zu ersetzen durch '=' und ihre beispielhaft genannten Identifizierer durch die wirklichen.
See ya up the road,
Gunnar
Hallo,
doctype-public="-//OASIS//DTD DITA Task//EN"
doctype-system="task.dtd"Sagte ich das nicht schon?
Möchtest du eine ehrliche Antwort oder soll ich dich anlügen?
Grüße
Thomas
Hello out there!
Sagte ich das nicht schon?
Möchtest du eine ehrliche Antwort oder soll ich dich anlügen?
Eine ehrliche Lüge, bitte. Das wäre das Mindeste; ich tue das ja auch für dich. *VBG*
Aber im Ernst, lässt sich
„‚doctype-system gibt den System-Identifizierer an, der in der Dokumenttyp-Deklaration verwendet wird.‘ [XSLT §16] Das wäre also "http://www.w3.org/TR/html4/strict.dtd".“
anders deuten als
„"http://www.w3.org/TR/html4/strict.dtd" ist der SI; dieser gehört in den Wert des 'doctype-system'-Attributs“?
(Und entprechend für den PI.)
Die Analogie "http://www.w3.org/TR/html4/strict.dtd" zu "task.dtd" bzw. "-//W3C//DTD HTML 4.01//EN" zu "-//OASIS//DTD DITA Task//EN" war snowwhite ja klar.
Und dass ich dasselbe sagte wie du, auch; zumindest hinterher. ;-)
See ya up the road,
Gunnar
Hallo,
Sagte ich das nicht schon?
Möchtest du eine ehrliche Antwort oder soll ich dich anlügen?
Eine ehrliche Lüge, bitte. Das wäre das Mindeste;
Du hast es wirklich gesagt*
Aber im Ernst, lässt sich
„‚doctype-system gibt den System-Identifizierer an, der in der Dokumenttyp-Deklaration verwendet wird.‘ [XSLT §16] Das wäre also "http://www.w3.org/TR/html4/strict.dtd".“
anders deuten
* nur das nutzt dem Fragenden nicht, wenn er nicht weiss was SI oder FPI ist.
Grüße
Thomas
Hello out there!
* nur das nutzt dem Fragenden nicht, wenn er nicht weiss was SI oder FPI ist.
Deshalb sagte ich das ja: „System-Identifizierer […] Das wäre also "http://www.w3.org/TR/html4/strict.dtd".“
Aber das Forum lebt ja von verschiedenen Antwort-Stilen. Und Frage-Stilen. [Cybaer] Vive la différence.
See ya up the road,
Gunnar
Hi,
zumindest hinterher. ;-)
Nein, nachher.
Um den Unterschied zu verdeutlichen:
Stell Dir vor, es sitzen 10 Leute nach Dir auf der Toilette.
Und jetzt stell Dir vor, es sitzen 10 Leute hinter Dir auf der Toilette.
Was wäre Dir lieber?
Oder geht Dir das am Hinter-n vorbei?
cu,
Andreas
Hello out there!
Stell Dir vor, es sitzen 10 Leute nach Dir auf der Toilette.
Kann ich mir nicht vorstellen. Nach mir geht so bald keiner drauf.
See ya up the road,
Gunnar
Hallo Thomas,
klasse, das hat funktioniert.:o)
Vielen Dank.
snowwhite
Tach snowwhite,
In meinem urspünglichen XML-Text ist kein Verweis auf eine DTD
Den Verweis auf die DTD möchte ich über das Stylesheet hinzufügen.
Ich habe schon ein paar Sachen ausprobiert, aber leider hat nichts funktioniert....
xsl:text
<!DOCTYPE regeln SYSTEM "regeln.dtd">
</xsl:text>
...
Platziere unterhalb von xsl:stylesheet dieses Kindelement:
<xsl:output method="xml" doctype-system="regeln.dtd"/>
Sofern das Wurzelelement der Ausgabe regeln ist, wird die gewünschte DOCTYPE-Deklaration erzeugt.
Man liest sich,
svg4you