Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem mit sog. "empty tags" und xslt

12 views
Skip to first unread message

Egon Schmid

unread,
Feb 7, 2011, 5:28:03 PM2/7/11
to
Hallo!

Wie kann man verhindern, dass ein

<script type="text/javascript" src="xyz.js"></script>

abgekᅵrzt wird zu einem

<script type="text/javascript" src="xyz.js" />

???

Browser mᅵgen offensichtlich die obere Syntax lieber...

Gruᅵ

Egon Schmid

Martin Honnen

unread,
Feb 8, 2011, 6:13:35 AM2/8/11
to
Egon Schmid wrote:

> Wie kann man verhindern, dass ein
>
> <script type="text/javascript" src="xyz.js"></script>
>

> abgekürzt wird zu einem


>
> <script type="text/javascript" src="xyz.js" />
>
> ???
>

> Browser mögen offensichtlich die obere Syntax lieber...

So generell stimmt das nicht, wenn man das Resultat als XML ausliefert,
kommt der XML-Parser auch mit der XML-Syntax zurecht.
So man HTML als Resultat will (da es als text/html an den HTML-Parser
geliefert wird), sollte man auch sicherstellen, dass man HTML erzeugt,
also mit XSLT 1.0
<xsl:output method="html"/>
benutzen und auch keine XML-Namensräume.
Mit XSLT 2.0 gibt es auch noch die Möglichkeit von
<xsl:output method="xhtml"/>
dabei wird dann sichergestellt, dass das Resultat als text/html
verarbeitet werden kann.

So man aber XHTML mit XSLT 1.0 erzeugen will und dass auch als text/html
an Browser wie IE auslieferfen will, bleiben nur "Krücken" wie
<script type="text/javascript" src="file.js">
<xsl:comment>Enforcing HTML serialization</xsl:comment>
</script>
da das dann als
<script type="text/javascript" src="file.js"><!-- Enforcing HTML
serialization --></script>
serialisiert wird und dann korrekt vom HTML-Parser verarbeitet wird.

--

Martin Honnen
http://msmvps.com/blogs/martin_honnen/

Arno Welzel

unread,
Mar 12, 2011, 2:17:58 PM3/12/11
to
Am 2011-02-07 23:28, schrieb Egon Schmid:

> Wie kann man verhindern, dass ein
>
> <script type="text/javascript" src="xyz.js"></script>
>

> abgekürzt wird zu einem


>
> <script type="text/javascript" src="xyz.js" />
>
> ???
>

> Browser mögen offensichtlich die obere Syntax lieber...

Wie kommst Du zu dieser Auffassung? Welche Browser sollen das sein?


--
http://arnowelzel.de
http://de-rec-fahrrad.de

Andreas Kraftl

unread,
Mar 15, 2011, 2:53:27 AM3/15/11
to
On 2011-03-12 20:17, Arno Welzel wrote:
> Am 2011-02-07 23:28, schrieb Egon Schmid:
>> <script type="text/javascript" src="xyz.js"></script>
>> Browser mögen offensichtlich die obere Syntax lieber...
>
> Wie kommst Du zu dieser Auffassung? Welche Browser sollen das sein?

Bei Firefox weiß ich definitiv, dass die kurzschreibweise <script ... />
zu einem nicht interpretieren führt.

Ist auch im xhtml Standard so spezifiert.

Liebe Grüße
Andreas
--
Kraftl EDV - Dienstleistungen
Linux, Schulungen, Webprogrammierung
http://www.kraftl.at

Martin Honnen

unread,
Mar 15, 2011, 7:34:08 AM3/15/11
to
Andreas Kraftl wrote:
> On 2011-03-12 20:17, Arno Welzel wrote:
>> Am 2011-02-07 23:28, schrieb Egon Schmid:
>>> <script type="text/javascript" src="xyz.js"></script>
>>> Browser mögen offensichtlich die obere Syntax lieber...
>>
>> Wie kommst Du zu dieser Auffassung? Welche Browser sollen das sein?
>
> Bei Firefox weiß ich definitiv, dass die kurzschreibweise <script ... />
> zu einem nicht interpretieren führt.
>
> Ist auch im xhtml Standard so spezifiert.

Was soll im "xhtml Standard" spezifiziert sein?

Wenn du XHTML als application/xhtml+xml oder application/xml oder
text/xml ausliefert, wird es in Firefox von XML-Parser verarbeitet, und
dann gibt es sicher auch keine Problem mit <script
type="text/javascript" src="file.js"/>:
http://home.arcor.de/martin.honnen/javascript/test2011031501.xhtml


Nur beim Ausliefern von XHTML als text/html wird das Dokument vom
HTML-Parser verarbeitet, und dann muss man sicherstellen, dass die Regel
in http://www.w3.org/TR/xhtml1/#C_3 eingehalten wird.

Arno Welzel

unread,
Mar 22, 2011, 4:11:49 PM3/22/11
to


Zur Illustration:

Das hier funktioniert bei mir mit Firefox:

<http://arnowelzel.de/samples/javascript-ok.html>

Das wiederum nicht - der Rest Dokument wird offenbar ab <script... als
Teil des SCRIPT-Elementes betrachtet:

<http://arnowelzel.de/samples/javascript-fail.html>

Beide Dokumente werden als text/html geliefert.

Sorgt man aber dafür, dass als Content-Type application/xhtml+xml im
Header gesendet wird, geht auch die zweite Variante:

<http://arnowelzel.de/samples/javascript-fail.php>

Dummerweise interpretiert der Internet Explorer application/xhtml+xml
nicht selber, sondern will das an eine externe Anwendung übergeben -
deshalb ist das keine wirkliche Alternative und die Frage des OP bleibt
- wie kann man per XSLT verhindern, dass ein leere SCRIPT-Element
minimiert ausgegeben wird?

Martin Honnen

unread,
Mar 23, 2011, 7:49:08 AM3/23/11
to
Arno Welzel wrote:

> und die Frage des OP bleibt
> - wie kann man per XSLT verhindern, dass ein leere SCRIPT-Element
> minimiert ausgegeben wird?

Ich habe das in
news://news.arcor.de:119/4d51255f$0$6766$9b4e...@newsspool3.arcor-online.net
beantwortet. Also entweder XSLT 2.0 und xsl:output method="xhtml"
verwenden oder mit XSLT 1.0, wenn man wirklich XHTML erzeugen muss, dann
einen Kommentar ins script-Element setzen, dann wird es nicht als
<script/> ausgegeben. Oder halt auf die Verwendung von XHTML verzichten
und HTML 4 mit XSLT 1.0 und output method="html" verwenden, dann wird
auch HTML-Syntax verwendet, mit denen die HTML-Parser etwas sinnvolles
anfangen kᅵnnen.

0 new messages