Кіріспе
Веб-формаларды жасау үшін XML форматы, X Window System GUI пакеті. XForms – веб-формалардан деректерді жинауға арналған XML форматы. XForms HTML/XHTML формаларының келесі ұрпағы ретінде әзірленген, бірақ ол жеке түрде немесе XHTML-ден өзге ұсынылым тілдерімен қолданушы интерфейсі мен деректерді өңдеудің әдеттегі тапсырмаларын сипаттау үшін де қолданылуы мүмкін. XForms 1.0 (Үшінші басылым) 2007 жылдың 29 қазанында жарияланды. Алғашқы XForms спецификациясы 2003 жылдың 14 қазанында ресми W3C ұсынысы мәртебесіне ие болды, ал бірнеше жақсартулар енгізілген XForms 1.1 2009 жылдың 20 қазанында сол мәртебеге қол жеткізді.
the X Window System GUI package
XForms is an XML format used for collecting inputs from web forms. XForms was designed to be the next generation of HTML / XHTML forms, but is generic enough that it can also be used in a standalone manner or with presentation languages other than XHTML to describe a user interface and a set of common data manipulation tasks. XForms 1.0 (Third Edition) was published on 29 October 2007. The original XForms specification became an official W3C Recommendation on 14 October 2003, while XForms 1.1, which introduced a number of improvements, reached the same status on 20 October 2009.
Веб-формалардан айырмашылықтары
Бастапқы веб-формалардан (бастапқыда HTML-де анықталған) айырмашылығы, XForms жасаушылары модель-көрініс-басқарушы (MVC) тәсілін қолданды. Модель бір немесе бірнеше XForms модельдерінен тұрады, олар форма деректерін, осы деректерге қойылатын шектеулерді және жіберуді сипаттайды. Көрініс формада қандай басқару элементтері пайда болатынын, олардың қалай топтастырылғанын және қандай деректерге байланысты екенін сипаттайды. CSS форманың сыртқы түрін сипаттау үшін пайдаланылуы мүмкін. XForms құжаты веб-форма сияқты қарапайым болуы мүмкін (тек модель бөлімінде жіберу элементін көрсетіп, басқару элементтерін құжаттың негізгі бөлігіне орналастыру арқылы), бірақ XForms көптеген кеңейтілген мүмкіндіктерді қамтиды. Мысалы, жаңа деректерді сұрап, оны форма жұмыс істеп тұрғанда жаңартуға болады, бұл XMLHttpRequest/AJAX-ты пайдаланумен ұқсас, бірақ скрипт қажет емес. Форма авторы пайдаланушы деректерін XML схемасының дерек түрлерімен тексеруге, белгілі бір деректерді міндетті етуге, енгізу басқару элементтерін өшіруге немесе жағдайларға байланысты форманың бөлімдерін өзгертуге, деректер арасындағы нақты қатынастарды сақтауға, өзгермелі ұзындығы бар деректер тізімдерін енгізуге, форма деректерінен есептелген мәндерді шығаруға, XML құжатын пайдаланып жазбаларды алдын ала толтыруға, оқиғаларға нақты уақыт режимінде жауап беруге (жіберу уақытына қарағанда) және әрбір басқару элементінің стилін олар көрсетілетін құрылғыға байланысты өзгертуге болады (десктоп браузері, ұялы телефон, мәтіндік интерфейс және т.б.). JavaScript сияқты тілдерде скрипттеудің қажеті жоқ. Дегенмен, XForms оқиғалар моделін және күрделі форма мінез-құлқындарын іске асыру үшін әрекеттерді қамтиды. Әрекеттер мен оқиғаларды өңдеу JavaScript сияқты кең таралған скрипт тілдерінен гөрі XForms XML диалектісін пайдалана отырып анықталады. Веб-формалар сияқты, XForms әртүрлі XML емес жіберу протоколдарын (multipart/form-data, application/x-www-form-urlencoded) пайдалана алады, бірақ жаңа мүмкіндік – XForms деректерді XML форматында серверге жібере алады. XML құжаттарын формадағы деректерді алдын ала толтыру үшін де пайдалануға болады. XML стандарт болғандықтан, жіберілгеннен кейін деректерді талдап, өзгерте алатын көптеген құралдар бар. Мұрагерлік формалар үшін де ұқсас құралдар бар. XForms өзі XML диалектісі болып табылады, сондықтан оны XSLT пайдалана отырып, басқа XML құжаттарынан жасауға болады. Трансформацияларды пайдалану арқылы XForms автоматты түрде XML схемаларынан құрылуы мүмкін, ал XForms XHTML формаларына түрлендірілуі мүмкін.
Бағдарламалық қамтамасыз ету
Осы мәтін жазылып тұрған кезде, кеңінен қолданылатын ешбір веб-браузер XForms-ті түпнұсқа түрде қолдамайды. Дегенмен, әртүрлі браузер плагиндері, клиенттік кеңейтулер және сервер/клиенттік шешімдер бар. Төменде кейбір іске асырылғандары келтірілген: Firefox XForms кеңейтуі Mozilla жобасының бір бөлігі болған. XForms 1.0 SE қолдауы толық емес, бірақ HTML кестелерінде қолданылатын атрибуттарға негіделген қайталаудан басқа, спецификацияның көп бөлігін қамтиды. Бұл кеңейту Firefox 2 және Firefox 3 үшін қолжетімді болды, бірақ Firefox 4 және одан жоғары нұсқаларын қолдау үшін жаңартылмады. 2011 жылдың шілдесінде басты дамытушы XForms қолдауы енді жаңартылмайтынын хабарлады. XForms қолдауы Firefox 19 нұсқасынан бастап тоқтатылды. IBM Lotus Forms XForms негізіндегі таза XML формаларын жасауға және орналастыруға қолдайды. Eclipse негізіндегі визуальды дизайн ортасы мен клиенттік қарау құралының сынақ нұсқаларын жүктеуге болады, олар XForms негізіндегі формаларды веб-браузерде де, жеке компьютерлік қолданба ретінде де іске қоса алады. OpenOffice.org 2.0 және одан жоғары нұсқалары мен LibreOffice XForms-ті қолдайды.
The Firefox XForms extension was part of the Mozilla Project. XForms 1.0 SE support is not complete but covers most of the specification with a notable exception of attribute based repeating used in HTML tables. The extension was available for both Firefox 2 and Firefox 3, but is not upgraded to support Firefox 4 and higher. In July 2011 the lead developer wrote that XForms support would no longer get updated. Support for XForms was eventually deprecated in Firefox 19. IBM Lotus Forms supports development and deployment of XForms based pure XML forms. Trial downloads are available of an Eclipse based visual design environment and a client side viewer that can run XForms based forms both in the web browser and as a standalone desktop application. OpenOffice. org versions 2.0 and greater and LibreOffice support XForms.
Салыстырмалы іске асыру технологиялары
FormFaces, AJAXForms, XSLTForms, betterFORM, Chiba, Orbeon және Smartsite Forms Ajax технологиясына негізделген. Бұл іске асыруларда серверлік және клиенттік өңдеудің көлемі әртүрлі. Мысалы, Ubiquity XForms, FormFaces және XSLTForms XForms стандарты бойынша таза Ajax өңдеу арқылы 100% клиенттік XForms өңдеуін және деректер моделінің жаңартуларын қамтамасыз етеді. Ал қалғандары серверлік Java/.NET XForms өңдеуін пайдаланып, мазмұнды браузерге жібермес бұрын Ajax белгілеуіне түрлендіреді. Екі тәсіл де әртүрлі браузерлерде жұмыс істей алады. Әрбір іске асыру тәуелділіктер, кеңейтімділік, өнімділік, лицензиялау, дайындық деңгейі, желілік трафик, офлайн мүмкіндіктері және браузерлер арасындағы үйлесімділік тұрғысынан едәуір өзгеше. Жүйелік архитекторлар осы шектеулерді өздерінің қажеттіліктерімен салыстырып, ықтимал тәуекелдер мен мақсаттарды анықтау үшін бағалауы керек. FormsPlayer және басқа клиенттік технологиялар сияқты қосымшалар да пайдалы болуы мүмкін: олар браузерге енгізілгендіктен, қолданыстағы серверлік архитектуралармен жұмыс істейді, жауап беру жылдамдығы жоғары және серверден азырақ сұрау жіберуді қажет етеді. Серверлік және клиенттік қосымшалар арасындағы айырмашылық – бағдарламалық жасақтаманы қайда сақтау керек дегенде: әрбір клиентке қажетті қосымшаны орнату қажет, немесе XForms транскодерінің тілдік технологиясын қолдау үшін серверлік архитектураны өзгерту қажет. Теориялық тұрғыдан алғанда, екі шешімді де біріктіруге болады, мысалы, браузерді клиенттік XForms іске асыруға тексеріп, осы жағдайда жергілікті XForms-ты көрсету және басқа жағдайларда серверлік шешімге көшу. Ubiquity XForms, FormFaces және XSLTForms клиент немесе серверде "бағдарламалық жасақтамасыз" шешім ұсынады: клиентте жаңа бағдарламалық жасақтаманы орнатудың қажеті жоқ және бұл шешімді кез келген серверлік архитектурамен бірге пайдалануға болады. Бұл мүмкін, өйткені FormFaces және Ubiquity XForms 100% Ajax-та жазылған, ал XSLTForms XSLT және Ajax-та жазылған. Айырмашылығы, басқа шешімдермен салыстырғанда, бастапқыда клиентке көбірек код жүктеледі (код клиентте кэште сақталуы мүмкін), сондай-ақ FormFaces әлі XML схемасын тексеруді қолдамайды. Сонымен қатар, XForms-ты "барлығын алмастыру" әрекетімен жіберу әдетте бетті толық алмастыруға әкелмейді, сондықтан кері батырманың қалыпты жұмысы бұзылады.
XRX қолданба архитектурасы
XForms күрделі XML деректерін өңдеуді жеңілдететіндіктен, REST интерфейстерін жиі пайдаланатын түпнұсқа XML деректер базаларымен XForms қолданудың көптеген артықшылықтары бар. Үш технологияның (клиенттегі XForms, REST интерфейстері және сервердегі XQuery) үйлесімі XRX қосымшаларын әзірлеу деп аталады. XRX клиентте де, деректер базасында да XML-ді пайдаланатын және объектілік немесе реляциялық деректер құрылымдарына түрлендірулерден қашық болатын қарапайым архитектурасымен белгілі. "XRX: қарапайым, әдемі, революциялық" дегенді қараңыз.
ОДК
ODK — W3C XForms 1.0 стандартының бір бөлігін пайдаланатын ашық кодты мобильді деректерді жинау платформасы. ODK, Java (JavaRosa) және JavaScript (enketo core) тілдерінде ODK XForms өңдеуге арналған кітапханаларды қамтамасыз етеді.
Ксфолит
Xfolite – J2ME платформасы үшін жеңіл XForms клиенті. Ол бастапқыда Nokia Research Center-де жасалған және DOM және XPath 1.0 іске асырылымын, сондай-ақ XForms 1.1 спецификациясын дерлік толықтай іске асыратын XForms қозғалтқышын қамтиды. Xfolite бета нұсқасы ретінде жарияланды және оны өндірістік қолдануға дайын деп санауға болмайды. Дегенмен, ол әртүрлі UI іске асырулармен жұмыс істеуге арналған жетілген XForms қозғалтқышын қамтиды. Бірақ XML схемалары мен CSS жобаның мақсатынан тыс. Xfolite ашық кодты және LGPL лицензиясымен лицензияланған, бірақ оны әрі қарытар белсенді дамыту тоқтатылған.