Ich brauche Datei in ASCII-Text-Format bekommen ich Code unten bin mitXSLT ASCII-Textformat
<xsl:output method="xml" indent="yes" encoding="US-ASCII"/>
aber keine Idee zu funktionieren scheint, wie kann ich es funktioniert?
Ich brauche Datei in ASCII-Text-Format bekommen ich Code unten bin mitXSLT ASCII-Textformat
<xsl:output method="xml" indent="yes" encoding="US-ASCII"/>
aber keine Idee zu funktionieren scheint, wie kann ich es funktioniert?
Es ist möglich, dass Ihre XSLT-Engine ASCII
für die Ausgabemethode xml
nicht unterstützt und dann automatisch auf UTF-8
oder UTF-16
umschaltet. Sie können es mit diesem minimalen XSLT-Stylesheet versuchen:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes" encoding="US-ASCII"/>
<xsl:template match="/">
<root>ä</root>
</xsl:template>
</xsl:stylesheet>
Wenn Sie es durch Ihren Prozessor ausführen, z. Saxon:
$ saxonb-xslt -s:test.xsl -xsl:test.xsl
das Ergebnis sollte wie folgt aussehen, wenn ASCII unterstützt:
<?xml version="1.0" encoding="US-ASCII"?>
<root>ä</root>
Wenn das nicht der Fall ist, müssen Sie einen Nachbearbeitungsschritt. Ein halbwegs aktuelle Version von xmllint
kann das tun:
xmllint --encode US-ASCII intermediate.xml > final.xml
Wo heißt die Spezifikation, dass nur UTF-8 und UTF-16 erlaubt sind? https://www.w3.org/TR/xslt-xquery-serialization/#XML_ENCODING verbietet keine anderen Kodierungen. –
Genau an der Stelle, an die ich mich angeschlossen habe, Kapitel 20 "Serialisierung". Beachten Sie, dass die Frage mit "xslt-2.0" gekennzeichnet ist. Dies ist also die relevante Spezifikation. Zitat: "Der Standardwert ist implementation-defined, aber im Falle der' xml' und 'xhtml' Methoden muss es entweder UTF-8 oder UTF-16 sein." – Boldewyn
Eigentlich scheint es mir beim Lesen Ihres Links genau dasselbe zu sagen, vorausgesetzt, dass die spezifische Implementierung, die OP verwendet, ASCII möglicherweise nicht unterstützt. – Boldewyn
genauer sein: was bedeutet „es nicht zu funktionieren scheint“ bedeuten? –
Ich bin gespannt auf die Motivation für die Anforderung von ASCII. Fast sicher, ein nachgeschalteter Prozess, der eine Datei als XML behandelt, wäre in der Lage, eine Dokumentencodierung von beispielsweise UTF-8 zu verwenden, da jedes XML-Dokument eine Folge von Unicode-Zeichen ist. Und ein nachgelagerter Prozess, der XML nicht versteht, sollte in der Lage sein, eine Binärdatei zu verarbeiten. Was ist dein Szenario? –