Avatar billede interkriller Nybegynder
05. april 2004 - 09:55 Der er 16 kommentarer og
1 løsning

Tjeckliste ved konstruktion af dynamisk spørgeskema til mobiltlf

Jeg sider her og skal have lavet en personligheds test til brug fra mobiltelefon..men er desværre lidt på bar bund.

Jeg vil lave et administrationsmodul som opretter nye spørgsmål som skal ligge i xhtml format.

Det er et krav at programmeringen sker i ASP.

Vores umiddelbare forestilling er, at administrationsmodulet (i ASP) skal oprette XML filer som en index-xhtml fil henter data fra.

Er der nogen der har erfaring med den slags problemstillinger, vil jeg meget gerne høre fra jer, om gode råd og guldkorn.

Vi vil derefter "crunche" xhtml filen til en WML-fil. (Men det skal du ikke bekymre dig om ;-) )
Avatar billede nute Nybegynder
05. april 2004 - 14:42 #1
hmm ... jeg tror du har misforstået noget ... måske.

xhtml er næste generations html. Hurtig fortalt, så er forskellen mellem html og xhtml, at xhtml sætter større krav til stringent kodning. Dette er ikke brugt til andet end formattering

xml, derimod, er et format man bruger for at gemme data.

normalt vil man bruge xml til at gemme data og xsl til at præsentere data - præsentationen kan så være (x)html, wml, ren tekst eller hvad man nu vil have.

hvis du vil hente data fra en xml fil, fra din asp side, så kan du enten bruge xsl eller kode op mod DOM. Den klart nemmeste og hurtigste (i mine øjne) er at bruge xsl

/nute
Avatar billede interkriller Nybegynder
05. april 2004 - 14:55 #2
Har sikekrt misforstået noget, men var relativt med på det du siger....

Men hvordan vil du så præsentere xml i xhtml vha xsl......

Altså koden til det :), eller noget....-...
Avatar billede interkriller Nybegynder
05. april 2004 - 15:01 #3
Jeg har kigget lidt på http://www.eksperten.dk/spm/369614

men får fejlmelding  (skal vist have installeret et eller andet.)

testsite: www.krildesign.dk/xmltest/FormatXML.asp

(dette er godt nok et output i asp, men skal bruge output i xhtml)
Avatar billede nute Nybegynder
05. april 2004 - 15:17 #4
et eksempel:

<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
    <person>
        <navn>Anders And</navn>
        <alder>100</alder>
        <adresse>Andeby</adresse>
    </person>
    <person>
        <navn>Anders Fogh</navn>
        <alder>56</alder>
        <adresse>Christiansborg</adresse>
    </person>
    <person>
        <navn>Anders Andersen</navn>
        <alder>12</alder>
        <adresse>Aner ikke</adresse>
    </person>
</root>

xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="iso-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" indent="yes"/>
    <xsl:template match="/">
        <html>
            <head>
                <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
                <title>-[ TITLE ]-</title>
            </head>
            <body>
                  <xsl:apply-templates />
              </body>
        </html>
    </xsl:template>
    <xsl:template match="person">
        <div style="border:1px solid black">
            <xsl:value-of select="navn"/><br/>
            <xsl:value-of select="alder"/><br/>
            <xsl:value-of select="adresse"/>
        </div>
    </xsl:template>
</xsl:stylesheet>

denne transformation kan du lade serveren gøre (vha fx MSXML: http://www.microsoft.com/downloads/details.aspx?FamilyId=C0F86022-2D4C-4162-8FB8-66BFC12F32B0&displaylang=en ) eller du kan lade klienten gøre det ( selv om det aller bedste vil være at lade serveren gøre det)

men ... hvorfor skal du absolut have xhtml ?

/nute
Avatar billede interkriller Nybegynder
05. april 2004 - 16:06 #5
Det skal i sidste ende munde ud i en WML applikation, og jeg har en "chruncher" som laver xhtml om til wml...

hvilken filtype(r) er ovenstående kodebid(der)? (en smule på bar bund)
Avatar billede nute Nybegynder
05. april 2004 - 16:28 #6
hmm ... jeg forstår ikke helt hvorfor du snakker så meget om xhtml. mon ikke vi snakker forbi hinanden på et (eller flere) område(r).

de overstående filtyper er, som jeg har skrevet, xml og xsl. hvis du tager kodeeksempelet fra det spm du henviste til, så kan du tage xml filen og transformere denne med xsl filen i din asp side.

du er dog nødt til at have installeret MSXML (eller en anden xml parser) for at du skal kunne transformere serverside. Du laver en asp fil der indeholder følgende kode:

<%
Dim objXMLDoc             : Set objXMLDoc = Server.CreateObject( "MSXML2.DOMDocument" )
Dim objXMLFreeThread     : Set objXMLFreeThread = Server.CreateObject( "MSXML2.FreeThreadedDOMDocument" )
Dim objXSLDoc             : Set objXSLDoc = Server.CreateObject( "MSXML2.XSLTemplate")

' Loading XML

objXMLDoc.async = false
objXMLDoc.load( Server.MapPath( "dinXML.xml" ) )

' Loading XSL
objXMLFreeThread.async = false
objXMLFreeThread.load( Server.MapPath( "ditXSL.xsl" ) )

' Setting stylesheet
objXSLDoc.stylesheet = objXMLFreeThread
' Setting xml to transform
objProcessor.input = objXMLDoc

' Transforming
objProcessor.transform()
Response.write( strOutput )
%>

i dette eksempel er ovenstående xml lagt ind i filen 'dinXML.xml' og ovenstående xsl lagt ind i filen 'ditXSL.xsl'. outputtet af denne transformation vil være:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
<title>-[ TITLE ]-</title>
</head>
<body>
<div style="border:1px solid black">Anders And<br />100<br />Andeby</div>
<div style="border:1px solid black">Anders Fogh<br />56<br />Christiansborg</div>
<div style="border:1px solid black">Anders Andersen<br />12<br />Aner ikke</div>
</body>
</html>

(( som jo er et xhtml dokument ))

jeg forstår hellere ikke hvorfor du vil lave en "cruncher" der laver wml, hvis du alligevel har dine data i en xml fil. Jeg har en mistanke om at du mixer xhtml og xml en smule ...

/nute
Avatar billede interkriller Nybegynder
05. april 2004 - 16:59 #7
Grunden til "chruncheren" er at jeg skal lave en wap side...

Min plan er at jeg i et asp dokument kan oprette nye tests, hvis indhold eksporteres til en XML fil....
Derefter ville min xhtml skabelon (som automatisk kan laves til WML) hente indholdet af den valgte XML.

Men måske er dette en idiotisk fremgangsmåde...er igang med at samle viden omkring området...
Avatar billede interkriller Nybegynder
05. april 2004 - 17:02 #8
P.S: testen skal dog også være tilgængelig i xhtml format på serveren så folk med nyere mobiltelefoner kan benytte sig af denne service

Jeg tjekker dine scripts senere, har nogle småærinder idag...så det bliver lidt senere. tak for det indtil videre :)
Avatar billede nute Nybegynder
05. april 2004 - 20:02 #9
man kan lave wap sider uden brug af "cruncher" ... det er bl.a. derfor du kan bruge xml/xsl ... det er, for at bruge dine ord, en idiotisk fremgangsmåde når du alligvel har dit indhold i xml.

jeg fatter stadig ikke hvorfor du snakker som om xhtml er det eneste der kan bruges ... dette er kun en standard - en formatteringsstandard. Det er *ingen* browsere der kun forstår xhtml. xhtml er faktisk ikke særlig udbredt, i sin tænkte form, endnu. Det ville forundre mig meget, om nyere mobiltelefoner kun kan fortolke xhtml. For tiden er dette nærmest et buzzword, end noget man kan bruge til noget fornuftig. Er du sikker på at du ikke mixer xml og xhtml ???

/nute
Avatar billede interkriller Nybegynder
06. april 2004 - 10:51 #10
Hvis vi nu visker tavlen ren.....

Hvis du skulle lave et administrationsmodul i asp som i sidste ende skulle munde ud i, at der kunne oprettes spørgeskemaer som en bruger kunne se på sin mobiltelefon via wap, hvilken fremgangsmåde ville du så benytte dig af....

Kan mærke jeg er lidt lost...for fejl i koden mht objProcessor.input = objXMLDoc

Browser skriver:

Microsoft VBScript runtime error '800a01a8'

Object required: 'objProcessor'

/xsl/aspindex.asp, line 18

måske manglende plugin eller forkert sti (filerne ligger i samme mappe)
Avatar billede nute Nybegynder
06. april 2004 - 11:13 #11
ah ... undskyld ... der mangler en linie. smid denne linie:

' Creating processor
Dim objProcessor : Set objProcessor = objXSLDoc.createProcessor()

lige under

objXSLDoc.stylesheet = objXMLFreeThread

så det bliver sådan:

' Setting stylesheet
objXSLDoc.stylesheet = objXMLFreeThread
' Creating processor
Dim objProcessor : Set objProcessor = objXSLDoc.createProcessor()

/nute
Avatar billede nute Nybegynder
06. april 2004 - 11:29 #12
og tilbage til dit spørgsmål:

"Hvis du skulle lave et administrationsmodul i asp som i sidste ende skulle munde ud i, at der kunne oprettes spørgeskemaer som en bruger kunne se på sin mobiltelefon via wap, hvilken fremgangsmåde ville du så benytte dig af"

jeg ville have gjort det så enkelt som mulig og valgt de formater/teknologier der er bedst til mit formål. Det kunne uden problemer laves i asp, med en database som grundlag, der spytter ud wml, men hvis du ville at disse spørgeskemaer skulle vises på forskellige medier (wap, html, text, pdf ... ) så ville mit bud være at bruge xml/xsl ... det er her styrken til xml/xsl kommer ind i billedet. Det eneste du har behov for, er at lave én xsl fil de forskellige medier. Men på den anden side ... dette er også en snak om preferencer. Nogle synes at det er nemmere at scripte de forskellige formater ud (altså at bruge asp til at generere output til de forskellige medier), mens andre ville synes det var bedst at bruge xml/xsl.

Du skal huske på at det *altid* er flere måder at løse problemer på - og specielt indenfor IT. Det har mere at gøre med personlige preferencer og/eller en virsksomheds ønske til at gøre ting på en speciel måde, fremfor at sige at den ene løsning er bedre end den anden. Derfor er det også svært for mig at sige om jeg ville valgt den ene, den anden eller tredje løsning i dit tilfælde, for jeg kender kun en mikroskopisk del af din "verden". Det kan godt være at jeg havde valgt at "hardkode" alle skemaer for den sags skyld ... who knows.

Ofte oplever jeg at den bedste måde at løse problemerne på, er at bruge de metoder man allerede kender. hvis man bruger meget tid på at løse noget på en bestemt måde (fx med xml/xsl), fordi "alle snakker om det", så finder man  hurtig ud af at man har spildt så meget tid på at få tingene til at fungere, at det overhovedet ikke er værd arbejdet.

Teknologien skal ikke diktere hvordan du skal løse en opgave - du skal diktere hvordan opgaven skal løses ud fra din viden om teknologien.

/nute
Avatar billede interkriller Nybegynder
06. april 2004 - 15:38 #13
Tak for din hjælp nute, det har været lærerigt :)

Jeg er gået lidt tilbage til basic, og har simplificeret mit script (samt sænket mit ambitionsniveau)

Din hjælp har given en god forståelse.

Tak for hjælpen og smid et svar
Avatar billede nute Nybegynder
06. april 2004 - 16:29 #14
nja ... det er jo ikke noget galt i at have højt ambitionsniveau. Hvis man satser på at spille fodbold i Premier League, så nytter det ikke at gå rundt at tro man kommer ind døren ved første forsøg. Man er nødt til at gå den vej alle andre går: via hård og målbevidst træning. Alle har de samme ambitioner: om at komme med på et lag, måske et specifikt lag, men hvis man tror man kan komme med på et lag, fordi man er født under en heldig stjerne, og man har samme næse som Beckham, så er man nok nødt til at forberede sig på at blive skuffet ;o]

Godt at høre at du har fået lidt bedre forståelse. Mon ikke det vil hjælpe lidt mere på forståelsen om xhtml, xml og xsl, med disse tutorials:

http://www.w3schools.com/xhtml/default.asp
http://www.w3schools.com/xml/default.asp
http://www.w3schools.com/xsl/default.asp

/nute
Avatar billede nute Nybegynder
06. april 2004 - 16:29 #15
... og mit svar ;o]
Avatar billede interkriller Nybegynder
06. april 2004 - 17:31 #16
Jamen du har da så evigt ret, men ambitionsniveau og deadlines løber ikke altid hånd i hånd :(
Avatar billede nute Nybegynder
06. april 2004 - 19:40 #17
true :-)

tak for points
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester