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

War es hilfreich?

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 &apos; 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top