Кіріспе

W3C XML схема тілі XSD (XML Schema Definition), World Wide Web Consortium (W3C) ұсынысы, кеңейтілген таңбалау тілі (XML) құжатындағы элементтерді ресми түрде қалай сипаттау керектігін көрсетеді. Бағдарламашылар оны құжаттағы әрбір элемент мазмұнын тексеру үшін, оның орналасқан элементтің сипаттамасына сәйкес келетініне көз жеткізу үшін пайдалана алады. Барлық XML схема тілдері сияқты, XSD-ді XML құжаты осы схема бойынша «жарамды» деп есептелуі үшін орындалуы тиіс ережелер жиынтығын білдіру үшін қолдануға болады. Дегенмен, көптеген басқа схема тілдерінен өзгеше, XSD құжаттың жарамдылығын анықтау белгілі бір дерек түрлеріне сәйкес келетін ақпарат жиынтығын тудыратындай етіп жоспарланған. Мұндай тексеруден кейінгі ақпарат жиынтығы XML құжаттарын өңдеуге арналған бағдарламалық құралдарды жасауда пайдалы болуы мүмкін.

Тарих

XML Schema 2001 жылы мамыр айында W3C ұсынысы ретінде жарияланған бірнеше XML схема тілдерінің бірі болып табылады. Бұл W3C ұсынысы мәртебесіне ие болған XML үшін жасалған алғашқы жеке схема тілі болды. XML Schema-ны нақты W3C спецификациясы ретінде және схема тілдерін жалпы сипаттау үшін бірдей терминді пайдаланудан туындаған шатасудың салдарынан, пайдаланушылар қауымдастығының бір бөлігі бұл тілді WXS деп атады, бұл W3C XML Schema аббревиатурасы, ал екіншілері оны XSD деп атады, бұл XML Schema Definition аббревиатурасы. 1.1 нұсқасында W3C таңдалған атау ретінде XSD-ді қабылдады және осы мақалада осы атау қолданылады. Сілтемелердің қосымшасында XSD спецификациясы DTD-нің және DDML, SOX, XML Data және XDR сияқты басқа ерте XML схемалық әрекеттердің ықпалын мойындайды. Ол осы ұсыныстардың әрқайсысының мүмкіндіктерін қабылдады, бірақ сонымен қатар олардың арасындағы компромисс болып табылады. Бұл тілдердің ішінде XDR және SOX XML Schema жарияланғаннан кейін де біраз уақыт бойы қолданыла берді және қолдау тапты. Көптеген Microsoft өнімдері 2006 жылдың желтоқсанында MSXML 6.0 шығарылғанға дейін (XDR-ді XML Schema-ға алмастырған) XDR-ді қолдады. Commerce One, Inc. 2004 жылдың соңында банкроттығын жариялағанға дейін SOX схема тілін қолдады. XSD ұсынатын және XML-дің түпнұсқалық құжат түрлерінде (DTD) жоқ ең айқын мүмкіндіктер – атау кеңістігі және дерек типтері, яғни элемент және атрибут мазмұнын кездейсоқ мәтін емес, бүтін сандар мен күндер сияқты мәндерді қамтиды деп анықтау мүмкіндігі. XSD 1.0 спецификациясы 2001 жылы жарияланды, ал 2004 жылы көптеген қателерді түзету үшін екінші басылымы шықты. XSD 1.1 2012 жылдың сәуірінде W3C ұсынысы болды.

Схемалар мен схемалық құжаттар

Техникалық тұрғыдан алғанда, схема – метадеректердің абстрактілік жиынтығы болып табылады, ол схема компоненттерінен тұрады: бастысы элемент және атрибут жарияланымдары, сондай-ақ күрделі және қарапайым типтердің анықтамалары. Бұл компоненттер әдетте осы компоненттердің бастапқы тілдегі анықтамаларын қамтитын схемалық құжаттар жинағын өңдеу арқылы құрылады. Дегенмен, кеңінен қолданылуда схемалық құжат көбінесе «схема» деп аталады. Схемалық құжаттар атау кеңістігі бойынша ұйымдастырылады: барлық аталған схема компоненттері мақсатты атау кеңістігіне жатады, ал мақсатты атау кеңістігі схемалық құжаттың жалпы қасиеті болып табылады. Схемалық құжатқа бірдей атау кеңістігіндегі басқа схемалық құжаттар кіріктірілуі мүмкін, сондай-ақ басқа атау кеңістігіндегі схемалық құжаттар импортталуы мүмкін. Егер дерек құжаты схемаға (бағалау процесі) сәйкес тексерілсе, онда тексеруге қолданылатын схема тексеру механизміне параметр ретінде берілуі мүмкін немесе екі арнайы атрибут арқылы дерек құжатынан тікелей сілтемеленуі мүмкін: xsi:schemaLocation және xsi:noNamespaceSchemaLocation. (Соңғы механизм дерек құжаты дұрыс схема бойынша тексеріліп жатыр деген сенімділікке ие болуды талап етеді. «xsi» – «http://www.w3.org/2001/XMLSchema instance» атау кеңістігінің конвенциялық префиксі.) XML схемалық құжаттарының файлдық кеңейтімдері әдетте «.xsd» болып жазылады. XSD үшін бірегей Интернет медиа типі әлі тіркелмеген, сондықтан RFC 3023 талаптарына сәйкес «application/xml» немесе «text/xml» қолданылуы керек.

XML схемаларының қосалқы пайдаланулары

XML схемасын анықтаудың басты себебі – XML құжатын формалды түрде сипаттау; бірақ соған қарамастан, пайда болған схеманың жай ғана тексеруден асып түсетін көптеген басқа да қолданыстары бар.

Кодты құру

Схема XML деректер байланысын жасау үшін қолданылуы мүмкін. Бұл код XML құжаттарының мазмұнын бағдарламалау ортасында объектілер ретінде пайдалануға мүмкіндік береді.

XML файл құрылымы құжаттамасын жасау

Схема XML файлының құрылымын адам оқи алатын түсініктемелерге айналдыру үшін қолданылуы мүмкін; бұл әсіресе авторлар түсіндірме элементтерін пайдаланған жағдайда тиімді. Түсініктеме жасау үшін ресми стандарт жоқ, бірақ жоғары сапалы, оқуға ыңғайлы HTML және баспа материалдарын жасауға мүмкіндік беретін, Xs3p стильдік парағы сияқты бірнеше құралдар бар.

1.1 нұсқасы

XSD 1.1 2012 жылдың сәуірінде W3C ұсынысы болып бекітілді, яғни ол W3C-нің мақұлданған спецификациясы. XSD 1.1-дегі маңызды жаңа мүмкіндіктер: XPath 2.0 өрнектерін пайдаланып құжат мазмұнына қатысты талаптарды анықтау мүмкіндігі (бұл идея Schematron-нан алынған). Элементтің атрибуттарының мәндеріне сүйене отырып, элементтің қай типке сәйкес тексерілетінін таңдау мүмкіндігі ("шартты түрге тағайындау"). Мазмұн моделіндегі нақты элементтердің модельде рұқсат етілген жол таңбаларымен (wildcards) сәйкес келмеуі керек ережелерін жеңілдету. Схемадағы барлық типтерге қолданылатын жол таңбаларын (элементтер және атрибуттар үшін) анықтау мүмкіндігі, осылайша олардың барлығы бірдей кеңейту саясатын қолданады. Ұсынылған нұсқа жобасына дейін XSD 1.1 жаңа сандық дерек типін – precisionDecimal қосуды ұсынды. Бұл мәселе дау тудырды, сондықтан ол әзірлеудің соңғы кезеңінде спецификациядан алынып тасталды.