Кіріспе

XML деректерді байлау – XML құжатындағы ақпаратты компьютер жадындағы бизнес-объект ретінде ұсыну тәсілі. Бұл қолданбаларға деректерді XML-дің тікелей көрінісінен DOM немесе SAX арқылы алудың орнына, объекті арқылы XML деректеріне қол жеткізуге мүмкіндік береді.

Қиындықтар

XML құжатқа бағытталған формат болғандықтан және нысандар (әдетте) құжатқа бағытталмайды, қарапайым XML деректерін байланыстыру шамалаулары XML құжатындағы құрылымдық ақпараттың бір бөлігін назардан тыс қалдыруы мүмкін. Атап айтқанда, түсініктемелер, XML нысандарына сілтемелер және бауырлас элементтердің реті байланыстыру қолданбасы жасаған нысан өрнегінде сақталмауы мүмкін. Дегенмен, бұл әрқашан осылай бола бермейді; жеткілікті күшті XML деректерін байланыстыру құралдары XML құжатында сақталған ақпараттың 100% сақтай алады. Сол сияқты, компьютер жадындағы нысандар өздігінен тізбектелмейтіндіктен және басқа нысандарға сілтемелерді (оның ішінде өзіне сілтемелерді) қамтуы мүмкін болғандықтан, қарапайым XML деректерін байланыстыру схемалары нысанды XML-ге түрлендірген кезде оның барлық ақпаратын сақтауға қабілетсіз болуы мүмкін. Алайда, жеткілікті күшті деректерді байланыстыру құралдары жадыдағы нысандардың графтық құрылымын талдау арқылы, стандартты XML сілтеме атрибуттарын пайдаланып XML-де (циклдік) нысандар графының құрылымын түрлендіреді.

Баламалар

Автоматты деректерді байлаудың баламалы тәсілі XML деректерінен деректерді шығару үшін қолмен жасалған XPath өрнектеріне сүйенеді. Бұл тәсілдің бірнеше артықшылықтары бар, бірақ кемшіліктері де бар. Біріншіден, бұл тәсілге XML ағашы құрылымы туралы негізгі білім ғана қажет (мысалы, топология, тегтердің атаулары сияқты), оны әзірлеушілер XML деректерін қарап анықтай алады. Бұдан әрі, XPath қолданбаға қажетті деректерді байлауға және қалғандарынан арылуға мүмкіндік береді, соның арқасында толыққанды XML құжатын жою үшін қажетті артық өңдеуден аулақ боласыз. Бұл тәсілдің кемшілігі – объектілік модельді және XPath өрнектерін жүзеге асыруда автоматтандырудың жоқтығы. Оның орнына, қолданба әзірлеушілер осы элементтерді қолмен жасауы керек, бұл уақытты көп алады, қателерге әкелуі мүмкін және XML схемалары мен XML мазмұны модельдері жаңартылғанда қолданбаны күтіп ұстауды қиындатады. Тағы бір кемшілік – XML схемасын тексерудің болмауы, XML деректерді байлау әдетте оларды жою кезінде автоматты түрде жүзеге асырады. Схеманың дұрыстығы, әдетте, қауіпсіз қолданбаларда міндетті болып табылады.

Деректерді жалпыға бірдей беру

XML деректерді байлаудың күшті жақтарының бірі – бағдарламалар, тілдер және платформалар бойынша объектілерді десериализациялау мүмкіндігі. Сіз C (программалау тілі) тілінде жазылған деректер жинағыштан кіріктірілген процессорға құрылымды нысандардың уақыт тізбегін экспорттай аласыз, оны желі арқылы Perl-де өңдеуге әкеліп, соңында Octave-де визуализациялай аласыз. Құрылымы мен деректері жол бойы тұрақты және үйлесімді болып қалады, және ешқандай арнайы форматтар немесе талдау қажет емес. Бұл мүмкіндік XML-ге ғана тән емес. Мысалы, YAML XML-ге қарағанда қуатты деректерді байлаудың баламасы ретінде пайда болуда. JSON (YAML-дың ішкі жиыны ретінде қарастырылуы мүмкін) көбінесе жеңіл немесе шектеулі қолданбалар үшін қолайлы.

XML деректерін байлау жүйелері

Атауы Бағдарламалау тілі Лицензиясы Бірінші шығарылым Соңғы тұрақты шығарылым XSD-ден код жасау Жеке карталау Ескерту Apache Commons Betwixt Java 0.8 Тоқтатылған. Объектілерді XML форматына түрлендіреді, XML схемасының анықтамасы қажет емес Apache XMLBeans Java 5.1.1, Castor Java 1.4.1, Алдыңғы нұсқалары Java-дан SQL-ге қолдау көрсеткен, бірақ қазір бұл бөлек жобаға бөлінді CodeSynthesis XSD C++ және меншік 4.0.0, SAX немесе ағаш тәрізді C++ сыныптарына бейімдеу gSOAP C және C++ және меншік 2000 12 08 2.8.131, XML схемаларын, WSDL және SOAP-ты қолдайды; C/C++ деректерін XML-ге түрлендіру үшін XML схемалары міндетті емес; XML схемасы түрлерін C/C++ түрлеріне типтерді бейімдеу файлы арқылы және C/C++ түрлерінен үйлесімді XML схемасы түрлеріне код түсіндірмелері арқылы Java Architecture for XML Binding (JAXB) Java ? JiBX Java 1.2.6, Сыныптарды байт-кодты өңдеу арқылы XML схемаларына бейімдейді Simple Java 2.7.1, System.Xml. C# серияландыру ? .NET фреймворкінің бөлігі, XML деректерін байлау кластарын қамтиды; xsd.exe құралы XSD схемасынан кластарды жасауға арналған xmlbeansxx C++ 0.9.1, Apache XMLBeans-тің C++ порты XStream Java 2004 01 01 1.4.10, JSON форматына түрлендіруге де қабілетті Zeus Java ? 3.5 бета,