XML ei ole luettavaa

Kalevi

Yleisesti uskotaan että HTML/XML:llää voi lukea ja muokata tekstinä. Tämä väite perustu kerettiläisten pikku vompattien mielenvikaisuuteen:

1. Etsi viisi virhettä XML:stä
2. Kumpaa on helpompi lukea?
3. Kumpi koodaus tapa helpompi muistaa

SANKARIT.XML

Jorma/etunimi>
Pulkkinen

Markku
Uusipaavalniemi

SANKARIT.TXT
Pulkkinen, Jorma
Uusipaavalniemi, Markku

Tekstitiedoston lukemiseen tarvittaisiin malli, vaikka seuraavanlainen:
sukunimi$, etunimi$

8

938

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Vompaaatti

      Vastaukset:

      1. Etsi viisi virhettä XML:stä

      - Iso alkukirjain: ""
      - Harakannokka puuttuu: "/etunimi>"
      - Väärä sulkutagi: ""
      - Väärin suljettu: ""
      - Väärä sulkutagi: ""

      2. Kumpaa on helpompi lukea?

      SANKARIT.TXT

      3. Kumpi koodaus tapa helpompi muistaa

      SANKARIT.TXT

      Mutta, käytännössähän:

      - TXT tiedostossa ei selviä sitä, että kysymys on julkkiksista
      - TXT tiedostossa ei selviä käytettyä koodausta (utf-8, iso-8859-1, jne)
      - TXT tiedostoon ei lisätä helposti uusia elementtejä ilman ohjelman muutosta
      - TXT tiedostoa ei muuteta helposti HTML muotoon (vrt. XSLT)

      Henkilökohtaisesti olen sitä mieltä, että useimmissa ohjelmissa pitäisi olla ominaisuus tiedon viemiseen ja tuomiseen käyttäen XML:ää. Esim. Excel 2003:n XML formaatti oli terve tullut lisä.

    • Mamää

      Eihän tuossa ole nopeasti katsottuna kuin yksi rivi oikein:

      Pulkkinen

      Ja doctype puuttuu.

      XML:n ei kuulu olla luettavaa. Sitä ei ole tarkoitettu (ihmisen) luettavaksi. XML on kehitetty kuvailemaan sisältöä applikaatio(i)lle, mikä luo sisällöstä halutunlaisen tietokokonaisuuden (dokumentin esim.). HTML-sivun, tai vaikka RTF-dokumentin. Tai taitto-ohjelmaan valmiin sisällön (ilman manuaalista käsinladontaa). Applikaatio voi lukea XML-dokumentin ja siirtää strukturoidun tiedon vaikka tietokantaan. XML-merkkauksella voidaan ohjelmallisesti hakea vaikka dokumentin kaikki sukunimet, riippumatta siitä missä kohtaa se tiedostossa esiintyy. XML-tiedostossa myös määritellään tekstin merkistökoodaus, mikä yleensä puuttuu tavallisesta flat-filestä. Niin ei tietysti tarvitse olla, mutta usein on.

    • xxx

      On xml paremmin luettavaa kuin normaalit tietokannat, joista ei ilman lukuohjelmaa saa mitään tolkkua.

      Tuossa ylempänä jo joitakin xml:n etuja tuli. Loistavaa siinä on mielestäni juuri se, että kentän nimet seuraavat mukana. Näin on mahdollista xml-tiedostoon lisätä omia kenttiä ilman että ne häiritsevät muita xml-tiedostoa käyttäviä ohjelmia. Muut vain jättävät ne kentät huomiotta.

      Xml:ssä myös sisäkkäisiä kenttiä voi olla ainakin käytännössä rajattomasti. Esim. jos tuohon esimerkkiisi haluaa lisätä lasten nimet, niin xml:ssä se onnistuu helposti ja selkeästi, mutta tekstitiedostossa tulee heti ongelmia. Ja kun ne kentät on xml:ään lisätty, niin aikaisemmat tiedoston käsittelyohjelmat jotka eivät niitä kenttiä tunnista, vain jättävät ne käsittelemättä. Eli yhteensopivuus toimii jollain tasolla myös taaksepäin.

      Kun tein finvoice-verkkolaskutoiminnon laskutusohjelmaan (finvoice on xml:ää), niin siinä oli kyllä räpeltämistä ja kenttien nimissä tuli kirjoitusvirheitä, mutta xml on kyllä mielestäni ehdottomasti paras muoto välittää tietoa eri sovellusten välillä. Sen (finvoicen) ohjelmointi oli kyllä varsin tarkkaa hommaa ja siihen menikin pari viikkoa melkein yötäpäivää.

      • Kalevi

        "Xml:ssä myös sisäkkäisiä kenttiä voi olla ainakin käytännössä rajattomasti. Esim. jos tuohon esimerkkiisi haluaa lisätä lasten nimet, niin xml:ssä se onnistuu helposti ja selkeästi, mutta tekstitiedostossa tulee heti ongelmia."

        Onko muka selkeää "rakentaa" lasten nimet henkilön sisälle? Lapsi ei ole henkilön sisällä (paitsi ennen syntymää tietenkin). Monta kertaa lapsikin on julkkis. Relaatiohan on tähän oikea tapa.

        Miksi yleensä tiedostomuodon pitää olla rakenteellinen. Voihan relaatioilla muodostaa rakenteita, jos haluaa. (esim. OWL:ssä on kasataan ontologiaa, mutta ei siihen käytetä sisäkkäisiä kenttiä.)


      • Kalevi
        Kalevi kirjoitti:

        "Xml:ssä myös sisäkkäisiä kenttiä voi olla ainakin käytännössä rajattomasti. Esim. jos tuohon esimerkkiisi haluaa lisätä lasten nimet, niin xml:ssä se onnistuu helposti ja selkeästi, mutta tekstitiedostossa tulee heti ongelmia."

        Onko muka selkeää "rakentaa" lasten nimet henkilön sisälle? Lapsi ei ole henkilön sisällä (paitsi ennen syntymää tietenkin). Monta kertaa lapsikin on julkkis. Relaatiohan on tähän oikea tapa.

        Miksi yleensä tiedostomuodon pitää olla rakenteellinen. Voihan relaatioilla muodostaa rakenteita, jos haluaa. (esim. OWL:ssä on kasataan ontologiaa, mutta ei siihen käytetä sisäkkäisiä kenttiä.)

        Miksi sisäkkäiset kentät?

        (tarkoitin rakenteella puurakennetta)


      • xxxxx
        Kalevi kirjoitti:

        Miksi sisäkkäiset kentät?

        (tarkoitin rakenteella puurakennetta)

        XML ei ole tietokanta vaan tiedon tallennusmuoto, jossa yhdessä tiedostossa esitetään kaikki tiedot. Ohjelmat lukevat siitä tiedot ja käsittelevät haluamallaan tavalla.

        XML:ssähän sisäkkäiset kentät ovat tavallaan relaatioita.

        Tietokannassa pitää myös ensin miettiä mitä kannattaa käsitellä relaatioina. Onko järkevää esimerkiksi laittaa lapset relaatioihin. Jos on molemmat vanhemmat erikseen, niin silloin se voisi olla tarkoituksenmukaista, riippuen toki siitä missä yhteydessä lapsia käsitellään. Mutta jos kyse on vain lisätiedoista, esimerkiksi yrityksen työntekijärekisteristä, jolloin lapset ovat vähän käytettäviä lisätietoja, niin ei niitä kannata laittaa (relaatiolla) omaan tauluun. Samoin kuin henkilön kielitaito. Joissain tilanteissa sitä varten kannattaa tehdä oma taulu (relaatiotietokantaan).

        Finvoice-verkkolaskussa on laskun tiedot ja kaikki rivitiedot sisäkkäin. XML on paras tapa välittää tiedot, sillä tietojen luku voi olla mikä tahansa (esim. relaatiotietokanta). Jos tiedot välitettäisiin jossain tietokantamuodossa, niin se rajoittaisi tietojen luvun vain ko. tietokantamuotoa osaaviin ohjelmiin.


      • Kalevi
        xxxxx kirjoitti:

        XML ei ole tietokanta vaan tiedon tallennusmuoto, jossa yhdessä tiedostossa esitetään kaikki tiedot. Ohjelmat lukevat siitä tiedot ja käsittelevät haluamallaan tavalla.

        XML:ssähän sisäkkäiset kentät ovat tavallaan relaatioita.

        Tietokannassa pitää myös ensin miettiä mitä kannattaa käsitellä relaatioina. Onko järkevää esimerkiksi laittaa lapset relaatioihin. Jos on molemmat vanhemmat erikseen, niin silloin se voisi olla tarkoituksenmukaista, riippuen toki siitä missä yhteydessä lapsia käsitellään. Mutta jos kyse on vain lisätiedoista, esimerkiksi yrityksen työntekijärekisteristä, jolloin lapset ovat vähän käytettäviä lisätietoja, niin ei niitä kannata laittaa (relaatiolla) omaan tauluun. Samoin kuin henkilön kielitaito. Joissain tilanteissa sitä varten kannattaa tehdä oma taulu (relaatiotietokantaan).

        Finvoice-verkkolaskussa on laskun tiedot ja kaikki rivitiedot sisäkkäin. XML on paras tapa välittää tiedot, sillä tietojen luku voi olla mikä tahansa (esim. relaatiotietokanta). Jos tiedot välitettäisiin jossain tietokantamuodossa, niin se rajoittaisi tietojen luvun vain ko. tietokantamuotoa osaaviin ohjelmiin.

        "XML ei ole tietokanta vaan tiedon tallennusmuoto, jossa yhdessä tiedostossa esitetään kaikki tiedot. Ohjelmat lukevat siitä tiedot ja käsittelevät haluamallaan tavalla."

        Joo. Mielestäni XML:ssä on samoja ominaisuuksia kuin luonnollisessa kielessä (ihmisten puhumassa). Tietokanta taas yrittää mallintaa todellisuutta sanoisinko kaavamaisemmin. Näin XML sopii kielenä (XM-Language) hyvin viestintään, kuten RSS. En tiedä tarvitaanko esimerkiksi sinun Finvoice-verkkolaskussa XML:n "kielellisiä" ominaisuuksia, mutta XML on luultavasti aika ihmisläheinen tallennusmuoto.

        Ideani olikin se, että eikö kielen ulkoasu voisi olla paremmin hahmoteltavaa. Esimerkiksi ohjelmointikielen syntaksi on yksinkertaisempaa.


      • xxxxx
        Kalevi kirjoitti:

        "XML ei ole tietokanta vaan tiedon tallennusmuoto, jossa yhdessä tiedostossa esitetään kaikki tiedot. Ohjelmat lukevat siitä tiedot ja käsittelevät haluamallaan tavalla."

        Joo. Mielestäni XML:ssä on samoja ominaisuuksia kuin luonnollisessa kielessä (ihmisten puhumassa). Tietokanta taas yrittää mallintaa todellisuutta sanoisinko kaavamaisemmin. Näin XML sopii kielenä (XM-Language) hyvin viestintään, kuten RSS. En tiedä tarvitaanko esimerkiksi sinun Finvoice-verkkolaskussa XML:n "kielellisiä" ominaisuuksia, mutta XML on luultavasti aika ihmisläheinen tallennusmuoto.

        Ideani olikin se, että eikö kielen ulkoasu voisi olla paremmin hahmoteltavaa. Esimerkiksi ohjelmointikielen syntaksi on yksinkertaisempaa.

        "Ideani olikin se, että eikö kielen ulkoasu voisi olla paremmin hahmoteltavaa. Esimerkiksi ohjelmointikielen syntaksi on yksinkertaisempaa."

        Ilmeisesti ei voi olla. Tosin alkuunpääsy oli xml:ssä on hankalaa ja vaatii syvällistä paneutumista (kun siinä on vielä SOAP-osoitemääritys ja ties mitä vaihtoehtoja).

        Todennäköisesti xml on mietitty tarkasti niin, että sitä voi käyttää minkä tahansa tiedon tallentamiseen. Kun ohjelmat (esim. Word, Excel) tallentavat tiedot xml-muodossa niin niihin ei voi piilottaa ylimääräistä, joten ainakin teorissa tiedostoa lukeva ohjelmoija ymmärtää mitä mikäkin tieto tarkoittaa ja voi tehdä siihen lisäksi oman käsittelyn. Tiedoston luku sellaisenaan ei sen määrityksen laajuudesta johtuen ilmeisesti voi tehdä yksinkertaisemmin. Todella hienoa siitä tulee vasta sitten kun kaikkiin uusiin ohjelmiin tulee mahdollisuus lukea ja kirjoittaa xml-muotoista tietoa. Ja että kenttien nimiksi määriteltäisiin standardinimet. Esim. jos yritys käyttää laskutusohjelmaa ja kaikki asiakas, lasku ym. tiedot tallentuvat xml-tiedostoon ja mikä tahansa muu laskutusohjelma lukisi automaattisesti kentät oikein, niin se lisää avoimuutta ja ohjelmien yhdistelyä. Esim. jos jossain asiakasrekisteriohjelmassa ei ole tarrojen tulostusta, niin kun asiakastiedot saadaan tallennettua xml:ssä, niin joku toinen ohjelma sitten lukee ja tulostaa asiakastarrat. Nythän monet ohjelmat lukevat yleisiä tietokantamuotoja, mutta xml:n jälkeen idea on että kenttien nimet ovat kaikilla samat, jolloin yksi porras ohjelmien yhteensopivuudessa on saavutettu.

        Eli xml on laaja siksi, että kaikki (ohjelmoijat ja ohjelmat) ottaisivat sen käyttöön. Loppukäyttäjän ei tarvitse katsoa tiedoston sisältöä vaan lukea se haluamallaan ohjelmalla haluamaansa muotoon.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mihin Ilkka Kanerva kuoli?

      Kun näin jokin aika sitten kuvan riutuneen näköisestä Kanervasta, sanoin vaimolle että haimasyövältä vaikuttaa. Vaimon isä oli kuollut kyseiseen tauti
      Maailman menoa
      265
      17021
    2. Oho! Susanna Laine uudessa hiustyylissä - Julkkismeikkaajalta tiukka palaute: "Ihan sama..."

      Ex-Salkkarit tähti ja juontaja Susanna Laine on monessa mukana. Ex-missi tunnetaan pitkistä, vaaleista hiuksistaan . Mitäs tykkäät uudesta hiustyylist
      Kotimaiset julkkisjuorut
      23
      5485
    3. Ilkka kanerva

      Ilkka Kanerva kuollut 74v
      Turku
      115
      2586
    4. Yllätyspaljastus: Poppari Robin Packalen kiittää urastaan iskelmätähti Juha Tapiota: "Jos mä en..."

      Oi, mikä tarina. Juha Tapio ja Robin ovat kyllä symppiksiä molemmat. Kumpi heistä on suosikkisi? https://www.suomi24.fi/viihde/yllatyspaljastus-poppar
      Kotimaiset julkkisjuorut
      15
      2069
    5. Venäjän lippulaiva Moskva upotettu Mustallamerellä

      Venäjän laivaston lippulaiva Mustalalmerellä on 180 m pituinen, Neuvostoliiton aikana rakennettu Moskva-niminen risteilijä. Ukraina ilmoitti eilen saa
      Maailman menoa
      336
      1768
    6. Pikkaraiskan puhelut

      Mitä tuo jätkä hakee sillä että julkaisee kuinka kauan on puhunut puhelimessa? Tekee itsestään vieläkin idiootimman tuolla vai mikä tää juttu?
      Kotimaiset julkkisjuorut
      111
      1001
    7. Ilkka Kanerva on kuollut

      74-vuotiaana.
      Maailman menoa
      59
      959
    8. Hossein Najaf juotti lapset humalaan ja käytti häikäilemättä hyväkseen

      Keski-Suomen käräjäoikeus on tuominnut 60-vuotiaan Hossein Najafin neljän vuoden vankeusrangaistukseen. Ensimmäisen tytön kanssa hän oli useita kerto
      Maailman menoa
      32
      886
    9. Sofia Belorf ja Sonja Aiello

      Viihtyvät yhdessä dinnerillä. Pienet piirit. Mitä ajatuksia herättää ?
      Kotimaiset julkkisjuorut
      44
      883
    Aihe