Si, di sutura pero'Originally posted by Ago
+10 punti a Yurj![]()
![]()
O'Rei mi fa domande su robe che non ho mai visto, e gli rispondo pure... so mejo de Nirvana![]()
![]()


Si, di sutura pero'Originally posted by Ago
+10 punti a Yurj![]()
![]()
O'Rei mi fa domande su robe che non ho mai visto, e gli rispondo pure... so mejo de Nirvana![]()
![]()


![]()
![]()
mi stai facendo scaricare 60 Mb di roba inutile????![]()
![]()
![]()


Originally posted by O'Rei
ho finito tutta la parte in xsl, per adesso visualizzo xhtml il professore sadico però ha detto che devo riuscire a farlo visualizzare anche in wml....ah che spasso...
Lavora su questa idea, determini il tipo di browser e in base a quello decidi quale xsl applicareCodice:// Find out what data types the requestor accepts. We're // looking specifically for WML versus HTML here. // In principle we're supposed to be looking through all of // the headers carefully, picking out the preferred styles of // each client. In practice we only know how to do WML, HTML, // and TEXT (in an emergency!), so we look for any evidence // that the client can take WML, and otherwise deliver HTML // unless we're pretty sure it *cannot* take HTML. String outputStyle = ""; Enumeration requesterAcceptEnum = request.getHeaders("ACCEPT"); while(requesterAcceptEnum.hasMoreElements()) { String headerStr = (String) requesterAcceptEnum.nextElement(); logger.finest("Accept header: " + headerStr); if (headerStr.indexOf("wml" ) > -1) outputStyle = "WML"; else if (headerStr.indexOf("html") > -1) outputStyle = "HTML"; else if (headerStr.indexOf("*/*") > -1) outputStyle = "HTML"; else if (headerStr.indexOf("text") > -1) outputStyle = "TEXT"; }![]()


oppure:
Codice:String useragent = request.getHeader("user-agent"); String wapProfile = request.getHeader("x-wap-profile"); String accept = request.getHeader("accept"); if (accept.matches("^.*vnd.wap.xhtml.*$")) { response.setContentType("application/vnd.wap.xhtml+xml"); // ---Do something --- } else if (accept.matches("^.*vnd.wap.wml.*$") || wapProfile != null ) { response.setContentType("text/vnd.wap.wml"); // ---Do something --- } else if ( useragent.startsWith("SonyEricssonP800") || useragent.startsWith("P800")) { response.setContentType("application/vnd.wap.xhtml+xml"); // ---Do something --- } Example of an XSLT file with WML1: <?xml version="1.0" encoding="UTF-16"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="wml" indent="yes" encoding="UTF-8"/> <xsl:output doctype-system="http://www.wapforum.org/DTD/wml13.dtd" doctype-public="-//WAPFORUM//DTD WML 1.3//EN" /> <xsl:template match="/"> <wml> <template> <!-- Template implementation here. --> <do type="prev"><prev/></do> </template> <card id="executed" title="XSLT based"> <p align="center"> <xsl:value-of select="message"/> <br/> <a> <xsl:attribute name="href"> <xsl:value-of select="//@href"/> </xsl:attribute> back </a> </p> </card> </wml> </xsl:template> </xsl:stylesheet>


sto impazzendo![]()


bene, l'elaborato è finito e funzionante...il problema è che funziona soltanto su internet explorer o netscape perchè contengono al loro interno una macchina che trasforma l'xsl e visualizza. Il prof ha detto che affinchè tutto funzioni anche sugli altri browser bisogna implementare sul lato server una servlet/jsp che gestisce le classi xalan in modo da trasformare l'xsl.![]()
![]()
![]()


Devi "solo" applicare la trasformazione XSL (XML -> HTML/WML/XML) a livello server e non sul cliente.
In pratica devi dire: "Server, questo e' il mio XSL e questo e' l'XML, ora sputa fuori l'XML/HTML/WM" che tradotto diventa:
java org.apache.xalan.xslt.Process -in xmlSource -xsl stylesheet -out outputfile
http://xml.apache.org/xalan-j/getstarted.html
Solito caveat: non e' il mio campo. Buon divertimento.


Nota che tale comando non deve essere in una pagina html "statica" da essere elaborata dal cliente.
Immagino dovrai intercettare le chiamate dei clienti passarle al tuo script xalan e ritornare ai clienti il risultato del tuo script. Esistono vari modi per effettuare tale "dirottamento", credo il modo piu' semplice (quello che ti ha suggerito il tuo professore) sia puntare il browser direttamente alla "pagina jsp", che immagino sia una pagina html che contenga codice java (elaborato a livello server prima di ritornare la pagina al cliente).
http://java.sun.com/products/jsp/
Prbabilmente qualcosa tipo
<%@ page language="java" %>
<html>
<head><title>A Comment Test</title></head>
<body>
<h2>A Test of Comments</h2>
<jsp:expression>
java org.apache.xalan.xslt.Process -in xmlSource -xsl stylesheet -out outputfile
</jsp:expression>
</body>
</html>
Non sono sicuro che la tag esatta sia <jsp:expression> ma da qui dovresti saper procedere da solo.


in jsp si usa <% %> per le espressioni
a stringa gestisce però un solo file xml source, quindi dovrei scriverla per ogni file? cioè se ho 10 file con xml source dovrei riscriverla 10 volte secondo te?


in jsp si usa <% %> per le espressioni![]()
Da quel poco che ho letto puoi usare sia % sia la tag.
la stringa gestisce però un solo file xml source, quindi dovrei scriverla per ogni file? cioè se ho 10 file con xml source dovrei riscriverla 10 volte secondo te?
Credo il modo migliore sia creare un unico file xml di partenza. Puo' darsi che il comando supporti il globbing (es *), non saprei, altrimenti usi un loop.