Pokud se ale lidé dělající na určitém projektu shodnou, jak postupovat (aby nebyl každý pes jiná ves), není problém. Je to podle mě stejná prkotina jako shodnout se, jestli složené závorky za podmínkou patří na stejný řádek jako podmínka...To tedy určitě není, protože preference v umístění složené závorky nezmění gramatiku jazyka, kdežto umístění kusu dat do atributu místo do elementu má pro schéma docela vážné následky, kupříkladu kvůli atomicitě atributů vyvstává nutnost hacků typu
Card:email.type="internet;pref;work", na kterou nás upozornil pan Kvasnička o kus níže, a trošku problematické je vkládání podelementů do atributu :-) - problém je to hlavně ve chvíli, kdy zjistím, že něco, co jsem chtěl jako atribut, chci ve skutečnosti jako element, protože to je zásah poměrně brutální (jiný handling v SAXu, jiný handling v XPathu...). Kdežto závorku v Cčku přeformátuju hned. :-) Takže nevím, jak jsi k tomuhle srovnání dospěl.
... a nakonec zjistíš, že jsi vytvořil uzly XML. Jen jsi je zapsal jinak. Nemám malou představivost, naopak: umím si představit, jak je tohle neefektivní. :-) A co se týče rychlosti, nevím, nevím. Nejspíš by se to řešilo pomocí nějakých regulárních výrazů. Pokud by byly složitější (nebo jich bylo hodně), už by se to na výkonu asi projevilo. Zejména, pokud bys to implementoval v interpretovaných jazycích (můj odhad).Proč by to mělo být neefektivní? Pomocí regulárních výrazů stejně napíšeš jen lexer (to už jste brali, ne? ;-)), a i tenhle stavový automat bude jednodušší a rychlejší pro jakýkoli rozumný "tradiční" jazyk než pro XML. Samozřejmě, že vyšší vrstva to svou mírně vyšší složitostí trošku vykompenzuje, ale pokud se neřeší C++, tak nechápu, kde bereš ten názor, že XML je rychlík. Jednou jsem zkoušel parsovat 2MB XML soubor přes Expat, který by snad měl být nejrychlejší, a ve skutečnosti byl osmkrát pomalejší, než když jsem data převedl do izomorfních S-výrazů. Ne, kvůli rychlosti se XML opravdu nepoužívá, to už spíš má smysl jít do pohodlnost a zaměstnat na tahání dat XPath a XQuery, když už to nebude rychlé, aspoň to bude rychle. :-)
A nejhorší je náchylnost k chybám. Záladní věci si ošetříš, ale téměř vždycky se najde koumák, co do toho napíše něco, co nemá. A co program nezvládne.
To je nevýhoda složitých gramatik. XML má "gramatiku" (ehm) celkem jednoduchou (i když taky ne triviální, přinejmenším vezme-li se v úvahu požadavek na korektnost, aspoň to tvrdí Uche Ogbuji), zato přesouvá zodpovědnost za strukturu "výš do aplikace". Skoro jsem v pokušení říct "pro jednoho '(XML) parser', pro jiného jenom lexer". :-) Existence XML nijak zázračně neodbourá potřebu detekce struktury, nutnost zotavení z chyb a podobně.
Validace XML je (jako každý automat) schopna podat odpověď na otázku zjišťovací, ovšem v případě negativní odpovědi inteligence výstupu povětšinou kulhá. Umí vůbec nějaký schémovací jazyk definovat "chytré" a opravdu užitečné chybové zprávy pro konkrétní selhání? Zatím jsem z XML nástrojů viděl lézt jen šílenosti typu "element XYZ má mít tvar (pět řádků něčeho, co vypadá jako DTD), ale v souboru má na řádku abc tvar (pět řádků něčeho, co vypadá na prvních sedm pohledů úplně stejně)". Proto mi přijde, že i co do inteligentních hlášek platí "co si neudělám, to nemám".
Mimochodem, mám dojem, že jsme spolu v poslední době někde (živě) mluvili. Je to možné?Vyloučeno. :-) Nikdy jsme se nepotkali, zatím jsem si všechny myši pamatoval. :-) Navíc mám ropuchu a nechodím mezi lidi. :-)))

