Dnes jsem si hrál s OOXML formátem. Potřebuji generovat a parsovat hodnoty z formuláře dokumentu. Toto mi již funguje pro ODT soubory a naivně jsem si myslel, že to rozšířím i pro DOCX. Že s tím bude nějaký problém jsem měl tušení, ale že to bude taková podpásovka, to jsem nečekal. V hlavním souboru document.xml je sice odkaz na formulářové prvky, ale samotné data formuláře naleztene v souboru word/activeX/activeX1.bin. Ehm a jak že mám naparsovat ty binární data v proprietárním formátu? Achjo..
No, když do dokumentu vložíte ActiveX objekt, asi se to jinak než binárně uložit nedá. Když do dokumentu vložíte normální formulářový prvek, v OOXML se data objeví v elementu sdtContent a s jejich čtením není žádný problém.
Nojo, ale klasické formulářové prvky jsou MSWordu nepoužitelné. Například potřebuji ListBox s multiselectem.
Je mi jasné, že MSWord ActiveX objekty převádět do XML nikdy nebude, ale OOXML prostě není žádný open formát, když může obsahovat binární objekty, ke kterým není specifikace.
Hmmm, zajímavá logika. Takže podle téhle úvahy není otevřený formát ani HTML, protože do něj můžete pomocí elementu <object> vložit libovolný binární objekt?
Jediné co byste mohl OOXML vyčítat, je že neobsahuje formulářový prvek seznamu s možností výběru více položek. Nicméně je celkem pochopitelné, že takový prvek tam není, protože při tisku dokumentu je ze seznamu vidět jen jeden prvek a není tak možné reprezentovat vícenásobný výběr.
Az v HTML nepujde bez tech objektu udelat to, co v nem jde udelat ted, tak to nebude otevreny format.
To, ze to jde, to mu nikdo nevycita. Problem je, ze kdyz chcete udelat veci, ktere v ODF jdou udelat bez problemu, potrebujete binarni objekt. A to je humus.
Zrovna ListBox s multiselectem používáme i při tisku. Jedná se o omezený počet voleb, které se vejdou do okna ListBoxu, takže tisk není problém. Řešení pomocí checkboxů je nevhodné, jelikož se volby mění (i jejich počet).
Nyní funguje implementace přes ODT soubory a jednoduché řešení přes DOCX asi tedy neexistuje:/
Vaše srovnání s HTML mi nepřipadá přiliš šťastné, jelikož v současné době nejdůležitější validace HTML stránky spočívá v tom, jestli stránka vypadá dobře v MSIE 6.0 .. tohle berte trochu s rezervou :)
Podle mého názoru formuláře jsou důležitou částí dokumentu a pokud klasické formuláře nevyhovují a budou se používat místo nich ActiveX prvky a Word dovolí tyto prvky ukládat do souboru, postrádá DOCX smysl. Uživatel si pak řekne, že chyba je v alternativní aplikaci, která neumí načítat ty krásné formuláře, které Word tak hezky umí zpracovat. MS si samozřejmě zajišťuje snadnou kompaktibilitu mezi svými produkty, což odnesou ostatní dodavatelé.
U OOXML můžete použít Custom XML - namapování formulářových polí na vlastní XML strukturu. Něco podobného ODF vůbec nemá. Tím pádem se vůbec nemusíte zabývat tím, jak jsou formulářová pole uložena ve formátu OOXML. Data máte ve vlastní struktuře. Pro namapování polí na XML se dá použít aplikace s otevřeným zdrojovým kódem (Word 2007 Content Control Toolkit ) http://www.codeplex.com/dbe