xml, html oder xhtml in : Welches ist die bessere Wahl?
Frage
Aus historischen Gründen haben wir eine Mischung aus
<xsl:output method="xml">
und
<xsl:output method="html">
und
<xsl:output method="xhtml">
innerhalb einer Include-Hierarchie von XSL-Dateien. Jetzt wollen wir Refactoring, so dass alle XSL-Dateien die gleiche Ausgabe-Methode verwenden.
Am Ende wollen wir XHTML-Ausgabe erzeugen, so dass ich diese annehmen, die beste Wahl wäre.
Aber was sind die Unterschiede zwischen den drei Ausgangsverfahren und die Sie für welche Art von Lösung verwenden würden?
Edit: Ich bin mit XSLT 2.0
Lösung 2
fand ich die Antwort durch die XSLT-2.0-Spezifikation Lesen ( XSLT 2.0 und XQuery 1.0 Serialisierung ).
eine leere Instanz eines XHTML Gegeben Element, dessen Inhaltsmodell ist nicht LEER (zum Beispiel ein leerer Titel oder Absatz) der Serializer muss nicht verwenden die minimierte Form. Das heißt, es MUST Ausgang
<p></p>
und nicht<p />
.ein XHTML-Element, dessen Inhalt gegeben Modell ist leer, der Serializer MUST verwenden, um die minimierten Tag-Syntax für Beispiel
<br />
als alternative Syntax<br></br>
von XML erlaubt gibt unsichere Ergebnisse in vielen bestehende Benutzeragenten. der Serializer MUSS ein Leerzeichen vor dem nachlauf />, z.B.<br />
,<hr />
und<img src="karen.jpg" alt="Karen" />
.Der Serializer darf nicht an das Unternehmen verwenden Referenz
'
die, obwohl legal in XML und damit in XHTML, ist nicht in HTML definiert und ist nicht von allen HTML-Benutzer anerkannt.Der Serializer sollte eine Ausgabe Namespace Erklärungen in einer Weise, die ist im Einklang mit den Anforderungen des die XHTML DTD, wenn dies möglich ist. Das XHTML 1.0 DTDs erfordern die Erklärung xmlns = "http://www.w3.org/1999/xhtml" erscheinen auf dem HTML-Elemente, und nur auf dem HTML-Elemente. Das Serializer MUST Ausgabe Namespace Erklärungen, die mit im Einklang der Namensraum-Knoten in der führen Baum, aber es muss vermeiden Ausgeben redundante Namespace Erklärungen zu Elementen in dem die DTD würde sie ungültig.
Das bedeutet, dass die Antwort <xsl:output method="xhtml">
verwendet wird.
Andere Tipps
HTML wird als HTML-Serialisierung, so dass der Ausgang nicht XML wohlgeformt sein kann. Wenn Sie senden nur an Browser und kümmern sich nicht um in der Lage, als XML zu analysieren, dann, dass Mai Arbeit für Sie.
XML wird als XML serialisiert werden, so dass der Ausgang sein wird, wohlgeformt, aber Sie können in einige Probleme mit Browsern mit der Ausgabe laufen. Kleine Dinge, wie selbstschließend <script />
und <div />
Elemente. Um dieses Problem zu vermeiden, würden Sie spielen müssen, wie Kommentare innerhalb des Elements Zugabe (z <script src="someJSFile.js"><!--don't close my script tag --></script>
)
Wenn Sie einen XSLT-2.0-Engine und wollen HTML-Ausgabe auch ohne die Kopfschmerzen gebildet von mir Gedanken darüber, wie einige Elemente serialisiert werden, dann XHTML verwenden.
Soweit ich weiß, gibt es keinen method:xhtml
zur xsl:output
Richtlinie in XSLT 1.0.
wc3schools damit einverstanden sind.
Als XHTML ist ein XML-Dialekt, das ist, was ich verwenden würde.
Wenn aber Sie verwenden Xslt 2.0 , Macht auch verwenden xhtml
, denn das ist, was Sie ausgeben.