Hei!
Ajattelin rueta tutustumaan hieman erillaiseen www tekniikoihin ja XHTML on tällä hetkellä kohteena. Luin tästä oppaan joka sijaitsee ohjelmointiputkassa, mutta haluaisin muutaman lisäkymyksen esittää kun en tietoa googlesta löytynyt kohtuudella.
Eniten minua kiinnostaa datan käsittely!
Ajatellaan, että teen puu rakenteen perheestä
Minulla on isä, äiti ja kaksi lasta. Iskä ja äislä ovat tietenkin pääelementi ja lapset on alaelementtejä. Jos perheeseen tulee yksi lapsi lisää, pitääkö tämä käydä laittamassa käsin XHTML koodiin vai miten tähän voi hakea muualta tietoa ja mistä sitä haetaan.
kässäskö kukaan?
Eihän se teksti dokumenttiin ilmesty ellei joku tai jokin sitä sinne kirjoita. Kyllähän sinun pitäisi PHP:n alkeisiin perehtyneenä jotain ymmärtää ohjelmoinnistakin?
Heh :)
Myönnetään, että esitin kysymyksen turhankin typerästi. Tottakai tieto pitää itse kirjoittaa/hakea jostain, mutta millä tavalla XML rakenteessa toimii tietokantarakenne. Jos olen oikein käsittänyt, niin siinä ei käytetä Mysql-tietokanaa vaan sillä on ihan oma käytettävissään. Olenko oikeassa vai ihan hakoteillä?
XHTML on HTML:n muunnelma, jossa käytännössä erona on, että jotkin asiat merkitään hieman eri tavalla. Esimerkiksi merkintä <br>
ei kelpaa XHTML:ssä, vaan sen sijasta täytyy kirjoittaa <br />
.
XML on dokumenttimuoto, jota esimerkiksi XHTML noudattaa. XML on yksi mahdollinen tapa tallentaa tietoa, ja sitä voi ajatella vaihtoehtona tietokannalle. Esimerkiksi jos sivusto sisältää tietoa kirjoista, voimme määritellä tarkoitukseen sopivan XML-dokumentin muodon, jossa tageina ovat esimerkiksi <nimi>
, <sivumaara>
ja <painovuosi>
.
XHTML:n käyttäminen ei kuitenkaan liity mitenkään siihen, että sivuston tietosisältö pitäisi tallentaa XML-muodossa. XML:ää voi käyttää yhtä hyvin tavallisten HTML-sivujen kanssa. Toisaalta ei ole mitään estettä muodostaa XHTML-sivua MySQL-tietokannasta haettavasta sisällöstä.
En ymmärrä Mannisen jatkokysymystä(kään), mutta syynä on varmaan se, ettei hän tiedä mitä pitäisi kysyä. XML:ää voi tallentaa tietokantaan. Kaikkiin kantoihin sen voi tallentaa ihan tekstinä, mutta joissakin on myös erikseen olemassa XML-oliot.
Lisäksi XML-dokumenttia on mahdollista käyttää itse tietokantana. Manipulointi onnistuu joko käyttämällä minkä tahansa kielen valmiita XML-toimintoja - vaikka esim. PHP:ssä itse aina tuotan dokumentit manuaalisesti - tai käyttämällä XML:n käsittelyyn tarkoitettuja kieliä kuten XSLT tai XQuery (med XPath). XSLT ja XQuery tosin ovat vain read only; niillä ei voi muokata olemassa olevaa dokumenttia vaan vain tuottaa uusia (epästandardeja laajennuksia löytyy).
XHTML on webbiin tarkoitettu näyttömuoto, josta ei kannata mitään tietokantaa viritellä. Sitä on helpompi parsia, koska syntaksi ei salli HTML:n idioottimaisuuksia.
manninen kirjoitti:
Minulla on isä, äiti ja kaksi lasta. Iskä ja äislä ovat tietenkin pääelementi ja lapset on alaelementtejä. Jos perheeseen tulee yksi lapsi lisää, pitääkö tämä käydä laittamassa käsin XHTML koodiin vai miten tähän voi hakea muualta tietoa ja mistä sitä haetaan.
Miten isä sekä äiti voivat olla pääelementtejä? Ei onnistu. Vaikka XML:n ammattisanastoon kuuluvat lapset ja vanhemmat, niin normaalista poiketen yhdellä lapsella voi olla vain tasan yksi vanhempi.
<family> <father>Iskä</father> <mother>Äiskä</mother> <child>Lapsi</child> <child>Toinen lapsi</child> </family> TAI <family> <parents> <person status="father">Iskä</person> <person status="mother">Äiskä</person> </parents> <children> <!-- Statuksen voi jättää vapaaehtoiseksikin. --> <person>Lapsi</person> <person status="child">Toinen lapsi</person> </children> </family> TAI <!-- Keksi oma rakenne? -->
Todennäköistä, että en tiedä itsekkään mitä kysyn. Parempi lähteä liikenteeseen jostain harjoitustyöstä. Osaatteko suositella mitään?
Harjoitustyöstä minkä suhteen? Et ole kertonut yhtään mitään aikomuksistasi. Pelkästään XML:ssä ja XHTML:ssä ei ole mitään opettelemista, koska ideana on vain laittaa tageja sisäkkäin.
Ehkä tässä on ongelmana nyt kuvitelma, että XHTML tai XML itse tekisi jotain. Näinhän ei ole, vaan XML on pelkkää tekstiä (kuten on PHP-koodikin ilman tulkkia). MySQL-taulun voi kyllä korvata XML-tiedostolla, mutta eihän se tietokantataulukaan itsekseen osaa muuttua, vaan jossain on ohjelma (MySQL-palvelin ja sitä ohjaava PHP-skripti), joka osaa muuttaa sitä.
Kaiken taustalla on siis PHP tai muu ohjelmointikieli: PHP:llä voi hakea dataa MySQL-taulusta tai XML-tiedostosta. PHP:llä voi tallentaa MySQL-tauluun tai XML-tiedostoon. Toki prosessissa ei ole paljonkaan yhtäläisyyksiä. Näillä on myös aivan erilaisia käyttöaiheita, koska ison datamäärän pyörittely tiedostossa on hyvin hidasta suhteessa tietokantaan ja toisaalta XML mahdollistaa mielivaltaiset ja ennalta määrittelemättömät puurakenteet suoraviivaisten taulujen sijaan.
Harjoitustyönä voit luoda vaikka XHTML-sivun, johon lisäät jonkin XML-kirjaston avulla tietokannasta haettua dataa. Sivun pohja on siis eri tiedostossa kuin PHP-koodi. Sivu avataan XML-puuksi ja puuhun lisätään oikeaan kohtaan tietoa. Lopuksi puu tulostetaan selaimelle.
Mannisen ongelmat jo ihan kysymysten muotoilussa juontavat siitä, ettei hän ole taaskaan perehtynyt asiaan yhtään lukemalla jotain hyödyllistä. Työkaluja ei voi oppia käyttämään, jossei ole mitään käsitystä siitä, mitä niillä on tarkoitus tehdä. Ei voi olla liikaa vaatia, että edes Wikipedia-artikkelin lukisi ensin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.