Proč se v Javě XML nahrazuje YML?

JS

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #150 kdy: 16. 11. 2018, 14:20:25 »
Tak mě napadá, proč XML zrušilo tyto "booleovské" atributy (checked vs checked="checked"), resp. proč neumožňuje takový jejich zápis (bez explicitní hodnoty).

Rekl bych, od boku, ze to zrusili, protoze je to nejednoznacne. Absence atributu neznamena, ze je jeho hodnota false. (Trebe starsi dokument nemusi znat nova pole.)


Kit

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #151 kdy: 16. 11. 2018, 14:59:17 »
A nejde o přenos dat, ale o to, že to člověka nutí psát zbytečné kraviny a znepřehledňuje text.
tvl kolik lidi dneska pise html bez IDE?

Například já a vůbec mi to nevadí.

Kit

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #152 kdy: 16. 11. 2018, 15:11:09 »
Pokud někomu vadí "zbytečné" značky na konci, tak si může příslušný úryvek napsat třeba v jazyku HAML a přímo v editoru ho zkompilovat na XML či HTML.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #153 kdy: 16. 11. 2018, 16:12:55 »
Pokud někomu vadí "zbytečné" značky na konci, tak si může příslušný úryvek napsat třeba v jazyku HAML a přímo v editoru ho zkompilovat na XML či HTML.

A nebo to napsat v tom YMLu, že jo. Jde o to, že nejde jen o psaní, ale i o čtení. A já mám sice XML rád, ale přidám se k těm, kterým to tedy čtivé nepřijde.

Petr

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #154 kdy: 16. 11. 2018, 16:56:39 »
Nevíte, protože máte selektivní vidění a ignorujete tu druhou půlku, znepřehledňuje to text. Zbytečné koncové značky text znepřehledňují. U xhtml je to extrémní třeba u tabulek. Kdyby mi je nějaký hloupý editor doplňoval, tak je odmažu a editoru to zakážu nebo ho vyměním.
Žádnou druhou půlku neignoruju, to jenom vy ignorujete, co píšu. Zbytečné koncové značky by možná text znepřehledňovali, ale XML nemá žádná zbytečné koncové značky. XML má jen nezbytné koncové značky, a to takové, které  zpřehledňují text – umožní na první pohled vidět, který element se uzavírá, a zakotvit se tak ve struktuře dokumentu. Zbytečné by byly např. koncové značky u prázdných elementů, ale ty právě psát nemusíte, můžete použít self-closing tag.

Stačí se podívat na porovnání následujících úryvků, když budete chtít vložit další osobu:

Kód: [Vybrat]
      <ulice>Sokolovská</ulice>
      <cislo-popisne>100</cislo-popisne>
      <cislo-orientacni>1000</cislo-orientacni>
      <psc>10000</psc>
    </adresa>
  </osoba>
</zakaznici>

Kód: [Vybrat]
      <ulice>Sokolovská</ulice>
      <cislo-popisne>100</>
      <cislo-orientacni>1000</>
      <psc>10000</>
    </>
  </>
</>

V prvním případě to vidíte rovnou, v druhém případě budete muset v dokumentu lítat sem a tam, abyste zjistil, k jakému začátku patří který konec, a nebo vám ten koncový tag bude muset editor stejně zobrazit jako pomůcku.
Ignorujete, ani po upozorneni nejste sto schopen to pojmout a furt tam cpete zbytecne koncove znacky. Kdyz pominu, ze ukazka neni validni html (a rec je o tom, proc neuspelo xhtml proti html),  pak to lze jednoduseji a citelneji napsat takto:

Kód: [Vybrat]
      <ulice>            Sokolovská
      <cislo-popisne>    100
      <cislo-orientacni> 1000
      <psc>              10000
  </osoba>
</zakaznici>


BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #155 kdy: 16. 11. 2018, 17:15:32 »
Ignorujete, ani po upozorneni nejste sto schopen to pojmout a furt tam cpete zbytecne koncove znacky. Kdyz pominu, ze ukazka neni validni html (a rec je o tom, proc neuspelo xhtml proti html),  pak to lze jednoduseji a citelneji napsat takto:

Kód: [Vybrat]
      <ulice>            Sokolovská
      <cislo-popisne>    100
      <cislo-orientacni> 1000
      <psc>              10000
  </osoba>
</zakaznici>

Bych to stejně zapsal takto:

Kód: [Vybrat]
<zakaznici>
    <osoba>
        <ulice>            Sokolovská
        <cislo-popisne>    100
        <cislo-orientacni> 1000
        <psc>              10000

Tak jak to dělají některé jazyky: inline je povinné ukončování, jinak se ukončí odsazováním. Přidání nové osoby perfektně čitelné.

MarSik

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #156 kdy: 16. 11. 2018, 17:17:58 »
pak to lze jednoduseji a citelneji napsat takto:

Kód: [Vybrat]
      <cislo-orientacni>1000
      <psc>             10000
  </osoba>

Nelze, tento zápis není v XML jednoznačný. psc by klidně mohlo být zanořené do cislo-orientacni.

Mohl jste si to někdy dovolit u html (relativně málo značek, implicitně známé DTD), ale obecně to nefunguje a klade to velké nároky na parser (musí zkusit několik variant a rozhodnout se, která je nejvíce správná).

Druhou možností je dát význam i bílým znakům (nový řádek uzavře element nebo povinné odsazení při změně úrovně). Tím byste ovšem vymyslel yaml.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #157 kdy: 16. 11. 2018, 17:20:30 »
Druhou možností je dát význam i bílým znakům (nový řádek uzavře element nebo povinné odsazení při změně úrovně). Tím byste ovšem vymyslel yaml.
No však :-)

Petr

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #158 kdy: 16. 11. 2018, 17:35:56 »
pak to lze jednoduseji a citelneji napsat takto:

Kód: [Vybrat]
      <cislo-orientacni>1000
      <psc>             10000
  </osoba>

Nelze, tento zápis není v XML jednoznačný. psc by klidně mohlo být zanořené do cislo-orientacni.

Mohl jste si to někdy dovolit u html (relativně málo značek, implicitně známé DTD), ale obecně to nefunguje a klade to velké nároky na parser (musí zkusit několik variant a rozhodnout se, která je nejvíce správná).

Druhou možností je dát význam i bílým znakům (nový řádek uzavře element nebo povinné odsazení při změně úrovně). Tím byste ovšem vymyslel yaml.
Lze, ale ne v xml a o tom, že je kvůli tomu xml nevhodné pro ruční editaci dokumentů a proto neuspělo xhtml je tu řeč už několik dnů, bylo by dobré si diskusi pročíst před zapojením se do ní.

Petr

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #159 kdy: 16. 11. 2018, 17:38:02 »
Mohl jste si to někdy dovolit u html (relativně málo značek, implicitně známé DTD), ale obecně to nefunguje a klade to velké nároky na parser (musí zkusit několik variant a rozhodnout se, která je nejvíce správná).

Mohu si to u něj dovolit stále a ne někdy, ale vždy u všech nepovinných párových tagů.

Petr

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #160 kdy: 16. 11. 2018, 17:40:49 »
Ignorujete, ani po upozorneni nejste sto schopen to pojmout a furt tam cpete zbytecne koncove znacky. Kdyz pominu, ze ukazka neni validni html (a rec je o tom, proc neuspelo xhtml proti html),  pak to lze jednoduseji a citelneji napsat takto:

Kód: [Vybrat]
      <ulice>            Sokolovská
      <cislo-popisne>    100
      <cislo-orientacni> 1000
      <psc>              10000
  </osoba>
</zakaznici>

Bych to stejně zapsal takto:

Kód: [Vybrat]
<zakaznici>
    <osoba>
        <ulice>            Sokolovská
        <cislo-popisne>    100
        <cislo-orientacni> 1000
        <psc>              10000

Tak jak to dělají některé jazyky: inline je povinné ukončování, jinak se ukončí odsazováním. Přidání nové osoby perfektně čitelné.

Přesně tak. Tak to dělá i html, ale není to odvozeno od odsazení, ale od následujících značek.

MarSik

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #161 kdy: 16. 11. 2018, 17:45:21 »
Druhou možností je dát význam i bílým znakům (nový řádek uzavře element nebo povinné odsazení při změně úrovně). Tím byste ovšem vymyslel yaml.
No však :-)

Jazyky s významem v bílých znacích mají zase svoje mouchy:

- Stačí trošku větší úroveň zanoření a dokument utíká z obrazovky,
- v místě ukončení delšího bloku je vizuální problém trefit správnou úroveň odsazení

Jsou to prostě dvě různé možnosti pro vyjádření hierarchie (Python vs. Ruby, XML vs. Yaml, JS vs. Coffescript) a obě mají výhody i nevýhody.

Mohl jste si to někdy dovolit u html (relativně málo značek, implicitně známé DTD),

Mohu si to u něj dovolit stále a ne někdy, ale vždy u všech nepovinných párových tagů.

Jen to pak občas vypadá různě v různých prohlížečích, protože browser netuší, kde má element ukončit.

A do doby HTML 4 a IE 4/5/6 se opravdu vracet nechci ani ve vzpomínkách. Exporty z Wordu s elementy, které občas zavřené nebyly, občas byly a občas byly, ale blbě (<a>[/url]) bývaly opravdu lahůdka.

Přesně tak. Tak to dělá i html, ale není to odvozeno od odsazení, ale od následujících značek.

Což je zase něco co si možná můžete dovolit u HTML, ale ne u obecného formátu pro strukturovaná data. Protože byste potřeboval DTD, které to pravidlo pro vynucené uzavření popíše.

MarSik

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #162 kdy: 16. 11. 2018, 17:56:11 »
Přesně tak. Tak to dělá i html, ale není to odvozeno od odsazení, ale od následujících značek.

Gramatika, která se musí rozhodnout do které tabulky bude patřit poslední tr z následujícího příkladu je všechno, jen ne jednoznačná.

Kód: [Vybrat]
table tr td table tr td tr td
A pokud ta gramatika určuje, že table + tr je třeba uzavřít, ale td ne, tak je zase pekelně složitá. Ono taky napsat validní HTML parser není vůbec jednoduché. A pro generický formát je taková složitost nevhodná.

agent

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #163 kdy: 16. 11. 2018, 18:07:14 »
Tohle mi zrovna jednoznačné připadá - není tam žádný tag který by vynutil automatické uzavření tabulky takže poslední <tr> patří do té vnitřní tabulky naposled začínající, která je uvnitř té druhé - ale neuzavírat <table> tag je už hodně velká prasečina i v HTML  ;D

Re:Proč se v Javě XML nahrazuje YML?
« Odpověď #164 kdy: 16. 11. 2018, 18:42:54 »
Ignorujete, ani po upozorneni nejste sto schopen to pojmout a furt tam cpete zbytecne koncove znacky.
Mohl byste odkázat, kde přesně jste psal o tom, že byste konec elementu neoznačoval vůbec nijak? Psal jste o koncových značkách, a koncová značka v XML se skládá z menšítka, lomítka, názvu uzavíraného elementu a většítka. Já jsem ten název uzavíraného elementu odstranil, čímž jsem odstranil i koncovou značku. Váš problém je, že máte selektivní vidění, a ani po upozornění nejste schopen pojmout, jaký účel mají jaké prvky XML.

K tomu vašemu příkladu – ukončovat element začátkem následujícího elementu z určité skupiny je pěkná prasárna, a pokud se budeme bavit i o přehlednosti, tak na škále přehlednosti od 0 do 100 to má hodnotu asi tak -98 (sic!).

Kód: [Vybrat]
<p>text<p>text<a href="">text<p>text</a>text<p>text
Kolik je v tomhle kódu odstavců?