XML сөздік қорын жеделдету

The source text is taken from here: http://xfront.com/accelerating-adoption-of-XML-vocabularies/

XML лексикасын қабылдауды жылдамдатқыңыз келе ме? Мұның бір жолы – 800 фунт горилланы әркім оны қолдануға мәжбүрлеу. Бірақ бұл тез арада наразылық пен бүлікке әкеледі. Ең жақсы әдіс – адамдар шынымен де пайдаланғысы келетін нәрсе жасау және уақыт пен ақшаға үлкен инвестицияларды талап етпеуі және бірден өзара әрекеттесуді бастауға мүмкіндік береді. Мұнда келесідей:

  1. XML лексикасын жасаған кезде, түзетудің мағынасын ғана емес, оны өңдейтін қосымшаларда оның әрекетін де көрсетіңіз.
  2. Сәйкестік ережелерін көрсетіңіз.
  3. Сынақ жиынтығын жасаңыз.
  4. Бұл әрекетті іске асыратын бағдарламаны жасаңыз.
  5. Қолданбаны сынақ жиынтығына қарсы тексеріңіз.
  6. Бағдарламаны әлемге қол жетімді етіңіз.

Ең дұрысы, қосымшаның бірнеше қосымшасы жасалады (әрқайсысы бірдей мінез-құлықпен, әрине!). Осылайша, пайдаланушылар оның орындалуына немесе өлшеміне не іске асырылған бағдарламалау тіліне негізделген орындауды таңдай алады.

Міне бітті! Бұл және XML-дің сөздік қорын тез қабылдауға болады.

Мысал: XSLT лексикасын қарастырыңыз. XSLT спецификациясы әрбір элементтің және атрибуттың мағынасын ғана емес, олардың мінез-құлқын да анықтайды. XSLT ерекшелігі сәйкестік ережелерін қамтиды. XSLT сынақ жиынтығы бар. XSLT процессоры деп аталатын бағдарлама XSLT сипаттамасында көрсетілген әрекетті жүзеге асыратын жасалды. Іс жүзінде көптеген қосымшалар жасалды: Халан, Саксон, Саблетон және басқалар.

«Мінез-құлықты көрсету арқылы» дегенімнің мағынасын айқындауға рұқсат етіңіз. XSLT-ты қайтадан қарастырыңыз. XSLT спецификациясы <xsl:for-each> элементінің түйіндер жинағын анықтайтынын айтады. Бұл мағынасы бар. Сондай-ақ, үйлесімді бағдарлама таңдалған төлсипатпен анықталған әрбір түйін бойынша қайталануы керек (әрбір элемент үшін таңдау төлсипаты бар) және <xsl: for-each> ішіндегі элементтерді орындаңыз. Бұл мінез-құлық. Осылайша, XSLT спецификациясы бағдарламаның <xsl:for-each> элементінде қалай әрекет ету керектігін анықтайды. Барлық XSLT лексика үшін дито.

XML сұлбасы сипаттамасы XML схемасы тексергіштерінің мінез-құлқын анықтаудың жақсы тапсырмасы болып табылады. Мысалы, ол XML схемасында элемент жариялау үшін, валидатор XML данасы құжатында элементтің қайталанатын санының және оның мазмұнын дұрыс түріне ие екенін тексеруі керек. Осылайша, валидатордың XML Схема сөздік қорында қалай әрекет ету керектігін анықтайды. Сонымен, «мінез-құлықты белгілеу» деген сөз «сөздікке осы элементке (немесе төлсипатқа) сипаттау дегенді білдіреді, қолданба мұны, осы және мұны істеуі керек».

XML-нің сөздік қорын жасау кезінде қателіктер жасайды, олар оның мінез-құлқын көрсете алмайды. Олар мінез-құлқының қандай болу керектігін анықтау үшін оны «әлемге» қалдырады. Классикалық мысал – HTML. Шолғыш әзірлеушілер мінез-құлқының қандай болу керектігін шешуі керек болды. Олар дұрыс мінез-құлық туралы әртүрлі идеяларға ие болды. Соның салдарынан IE, Firefox және басқа браузерлер әртүрлі әрекеттер жасады. Олар мінез-құлықты жалпы түсінуге жақындағанға дейін он жыл бұрын өтті. Егер HTML ерекшелігі мінез-құлық, сәйкестік ережелерін және сынақ жиынтығын көрсеткен болса, біз он жыл бұрын браузерлерді бірдей ұстаған болар едік.

Мінез-құлқыңызды көрсетіп жатқанда ескеру керек нәрсе: сіздің XML лексиканы қосымшаға бір XML құжаты немесе екі XML құжаты ретінде беріледі ме? (Немесе көп?) Мынадай мысалдар алайық:

  • Браузер өтініштер бір құжат (HTML құжат) өңдеуге
  • XML схемасын Валидаторы екі құжат (бар XML схема құжаты және XML құжат) өңдеуге
  • XSLT процессорлар екі құжат (бар XSLT құжат және XML құжат) өңдеуге

Бұл мысалдарда қосымшалар: браузер, XML схема валидаторы және XSLT процессоры. Бұл бағдарламалар XML сөздік қорын өңдейді. XML лексикасына қарай, қосымша бір енгізу құжатын немесе екі кіріс құжатын (немесе одан да көп) талап етуі мүмкін.

Деректердің өзара әрекеттесуі

Мен жиі естідім: «Деректердің өзара әрекеттесуіне қол жеткізу үшін әрбір бағдарлама XML сөздік қорын түсіндіріп/түсіну керек».

Бірдей қолданбаны пайдаланудан гөрі бір түсіндіру/түсінуді қамтамасыз етудің қандай жақсы жолы!

Бірдей қолданбаны қолдану арқылы біз деректердің үйлесімділігіне қол жеткізе аламыз. ЕСКЕРТПЕ: «Бірдей қолданба» деп айтқан кезде, мен іске асыру жиынтығын білдіреді. Осылайша, Халан, Саксон және Саблетрон бәрі бірдей қолданысқа ие – барлығы XSLT процессорлары. Бірдей қолданбаны қолдану, мысалы, барлық Халанды қолданады дегенді білдірмейді. Бір адам Халан, екіншісі саксондық, ал басқа Саблетронды пайдаланады. Бұл жақсы; олардың барлығы бірдей мінез-құлыққа ие; олар XSLT сәйкестік ережелерін сақтайды; олар XSLT сынақ жиынтығын өткізеді.

Деректердің өзара әрекеттесуін сол бағдарламаның ортақ пайдалануы арқылы қалай қол жеткізетінін көрнекі мысал келтіріңіз.

Мысал: XSLT қарастырайық. Мен XSLT құжатын жасай аламын және оны XSLT процессорыма қосамын. XSLT құжатын сізге жібере аламын және оны XSLT процессорында іске қосасыз. Біз де солай әрекет етеміз. <xsl:for-each> элементі дегеніміз не және ол қалай әрекет ету керек екеніне толық келісеміз. XSLT лексикадағы барлық басқа элементтер мен атрибуттар үшін. Біз сәтті өзара әрекеттестікке қол жеткіздік. Бұл не болды? Жауап: Бірлескен әрекетті пайдаланудың арқасында біз өзара әрекеттесуге мүмкіндік бердік. (Қайтадан, мен бұл қосымшаның бірдей іске асырылуын пайдаланамыз дегенді білдірмеу керек, сіз Xalan-ді қолданып, мен Saxon пайдалана аламын, бұл дұрыс, олар XSLT процессорлары екеуі де).

Мен екінші XSLT құжатын жасап, оны сізге жібере аламын. Тағы да, бізде өзара үйлесімділік бар. Үшінші XSLT құжаты. Және тағы басқалар. XSLT процессоры қосымшасы шексіз XSLT түрлендірулерін құруға, айырбастауға және жете түсінуге/өзара әрекеттесуге мүмкіндік береді.

Қайталау

Міне негізгі ұстанымдар:

  1. XML лексикасын жасаған кезде, XML лексикасының мінез-құлқын көрсетіңіз. Сәйкестік талаптарына сәйкестік. Сынақ жиынтығын жасаңыз. Сәйкес қосымшаларды орындау, олардың әрқайсысы бірдей мінез-құлыққа ие (орындау өлшемі, өнімділігі, бағдарламалау тілі және т.б.). Әрбір қолданысқа енгізеді.
  2. Деректердің өзара әрекеттесуіне XML сөздік қорын ортақ түсіну арқылы қол жеткізілмейді. Деректердің өзара әрекеттесуіне XML сөздік қорының қосымшасын ортақ пайдалану арқылы қол жеткізіледі.
  3. Оның мінез-құлқын көрсетпей, XML сөздік қорын құру – жаман идея. Үздік жағдайда деректердің үйлесімділігін жоғалту үшін деректердің өзара әрекеттесуін кешіктіруге арналған рецепт.

Жаңартылған: 2018 жылғы 18 наурыз