Zaměřím se především na popis jednotlivých XML dokumentů, které si budou moduly mezi sebou předávat, protože otázku, jakým způsobem se přesně budou jednotlivé moduly volat (nejspíš include a následné volání jednotlivých funkcí, ale pokud si vzpomínám padaly i jiné návrhy), lze dost možná ještě odložit. Každý XML dokument bude mít pochopitelně XML deklaraci, následovat musí kořenový element, například "caddis" (navrhuji pro veškerá jména elementů a atributů používat malých písmen, abychom se vyhnuli case-sensitivitě; pro hodnoty atributů už by to mohlo být nežádoucí, tam bych rozhodnutí ponechal na později). Jako jeho první vnořený element bych zvolil něco jako "head" se zatím blíže neurčitým obsahem, protože mám takové nejasné tušení, že si pravděpodobně z implementačních důvodů budeme muset předávat nějaké informace, na které si momentálně nevzpomeneme, a tudíž se taková hlavička bude hodit, když zůstane nevyužita, nic se nestane. Jako další synovský element "caddisu" navrhuji "data", což bude jenom obecný kontejner pro veškerá data předávaná mezi moduly. Čili úplně základní schéma by vypadalo asi takto: ... ... První věcí, která mě například napadla, že by mohla být součástí hlavičky, je informace o tom, který modul XML vygeneroval a odeslal. Tady se naráží na dvě možné koncepce - buďto bude volající modul volat přímo nějakou konkrétní funkci s jasně danou činností, potom je informace o volajícím dle mého názoru zbytečná, protože by tuto informaci ta funkce neměla potřebovat. Druhá možnost je, že všechny moduly budou nějakém jiném modulu volat jedinou funkci, která bude zvenku vidět a tato funkce se až na základě XML rozhodne, co vlastně se bude přesně dít, pak je tam ta informace pochopitelně nezbytná. Jde o to posoudit, zda je lepší, aby se například Formulářník rozhodoval, co přesně bude chtít po Plánovači (první varianta), nebo aby naopak Plánovač vzal XML, z hlavičky si přečetl, že je od Formulářníka a sám si rozhodl, co to tak asi po něm ten Formulářník může chtít. Z obecných záležitostí bych jenom ještě upozornil, že veškeré názvy elementů a atributů jsou většinou to první, co mě zrovna napadne a pravděpodobně ne zrovna to nejlepší a očekávám o nich pochopitelně další diskuzi; připadalo mi však na druhou stranu nepřehledné používat například neustále element1, element2, atd. V popisu konkrétních XML začnu od uživatele, který bude (s výjimkou případů odesílání dat e-mailem) komunikovat s Formulářníkem. Hned ovšem úvodní stránka Caddisu (kterou bude obstarávat rovněž Formulářník) je speciální případ, který bude nejspíš vyžadovat i samostatnou XSL šablonu obsahující nějaké to úvodní povídání a pak místo nějakého formuláře naopak seznam existujících formulářů (jako nynější verze). V tomto případě bude tedy XML od Formulářníka velice jednoduché - hlavička (nejspíš) bude obsahovat něco jako a datová část bude prázdná. V odpovědi, kterou Formulářník očekává může být redundantně pro sichr zopakováno, oč bylo žádáno (třeba jako ), nebo taky nemusí, ale především v datové části seznam všech formulářů, které Caddis nabízí: ...
Kniha
Audio nahrávka
...
...
Pak již nebude problém uživateli poskytnou patřičný výstup. Další situace nastává v momentě, kdy si uživatel vybere jeden z formulářů, pak Formulářník odešle v hlavičce například . Odpověď bude v datové části obsahovat element "formular", který bude obsahovat sadu elementů "formitem" - ty reprezentující informace o jednotlivých prvcích. Každý takový bude obsahovat element "type" určující, jaký datový typ je v daném místě očekáván. To je důležité jednak proto, aby se Formulářník rozhodl, který formulářový prvek vlastně použije (nejčastěji textový input, ale občas i něco jiného) a jednak proto, že to nebude pouze datový typ, ale spíše nějaký identifikátor, který bude zároveň určovat, zda a proti čemu se mají data této položky validovat. Dále bude obsahovat element "width", což bude určovat šířku formulářového prvku tak, jak má být vykreslen, vzhledem k nějaké prozatím fiktivní jednotce. Nakonec ještě element "label" obsahující textový popisek, který se má před formulářovým prvkem objevit. Dost možná by stálo za to zvážit, zda by nebylo lepší vyhradit si labely rovnou dva - jeden před formulářový prvek a druhý za něj, bude-li to potřeba (tedy buď něco ve smyslu a nebo