Кіріспе

DocBook – техникалық құжаттама үшін семантикалық таңбалау тілі. Ол бастапқыда компьютерлік аппараттық және бағдарламалық қамтамасыз етуге қатысты техникалық құжаттарды жазу үшін жасалған, бірақ оны кез келген басқа да құжаттама үшін пайдалануға болады. Семантикалық тіл ретінде DocBook пайдаланушыларға мазмұнның логикалық құрылымын сақтайтын, форматтан тәуелсіз түрде құжат мазмұнын жасауға мүмкіндік береді. Осы мазмұнды HTML, XHTML, EPUB, PDF, man pages, WebHelp және HTML Help сияқты түрлі форматтарда, бастапқы деректерге ешқандай өзгеріс енгізбей жариялауға болады. Яғни, құжат DocBook форматында жазылса, оны қайта жазудың қажеті болмайды, оңай түрлендіріліп, басқа форматтарға көшіруге болады.

Схемалар мен растау

Ережелер DocBook XML схемасында ресми түрде анықталған. Тиісті бағдарламалық құралдар XML құжатын (DocBook немесе басқа) оған сәйкес келетін схемаға қатысты тексеріп, құжаттың сол схемаға сәйкес келмейтін жерлерін (болған жағдайда) анықтай алады. XML өңдеу құралдары да схема ақпаратын пайдаланып, бастапқыда сәйкес келмейтін құжаттар жасаудан сақтануға мүмкіндік береді.

Авторлық және өңдеу

DocBook XML болғандықтан, құжаттарды кез келген мәтіндік редакторда жасауға және өңдеуге болады. Арнайы XML редакторы да DocBook редакторы болып саналады. DocBook танымал XML схема тілдері үшін схема файлдарын ұсынады, сондықтан схемаға сүйенген мазмұнды толықтыра алатын кез келген XML редакторы DocBook үшін де оны жасай алады. Көптеген графикалық немесе WYSIWYG XML редакторлары DocBook-ты сөз өңдегіш сияқты өңдеу мүмкіндігімен келеді. Кестелер, тізім элементтері және басқа стильді мазмұнды DocBook редакторына көшіріп, жабыстыруға болады, және ол DocBook XML шығысында сақталады. DocBook SGML және XML нысандарында, сондай-ақ DTD ретінде қолжетімді. XML нұсқасының RELAX NG және W3C XML схемалары бар. DocBook 5 нұсқасынан бастап RELAX NG нұсқасы – басқа форматтар жасалатын "нормативтік" нысан болып табылады. DocBook бастапқыда SGML қолданбасы ретінде пайда болды, бірақ оған эквивалентті XML қолданбасы жасалды және қазір көптеген жағдайларда SGML-ді алмастырды. (SGML DTD-нің 4-ші нұсқасынан бастап, XML DTD осы нөмірлеу жүйесін жалғастырды.) Бастапқыда DocBook-ты бағдарламалық жасақтама компанияларының бірнеше өкілдері оның бастапқы жобасын жасауға қатысқандықтан қолданды. Бірақ ақырында DocBook ашық кодты қауымдастық тарапынан қабылданып, көптеген жобалар үшін құжаттама жасау стандартына айналды, оның ішінде FreeBSD, KDE, GNOME жұмыс үстелі құжаттамасы, GTK+ API анықтамалары, Linux ядросының құжаттамасы (2016 жылдың шілдесінен бастап Sphinx/reStructuredText жүйесіне көшірілуде) және Linux Documentation Project-інің жұмысы.

DocBook v5.0 алдын ала

DocBook 5-ке дейін DocBook құжаттың типін анықтау (DTD) арқылы ресми түрде анықталды. DocBook бастапқыда SGML-дің қолданбасы ретінде құрылғандықтан, DTD – қол жетімді жалғыз схема тілі болды. DocBook 4.x форматтары SGML немесе XML бола алады, бірақ XML нұсқасының жеке атау кеңістігі жоқ. DocBook 4.x форматтары DTD арқылы анықталған шектеулермен өмір сүруге тиіс болды. Ең маңызды шектеу – элемент атауы оның мүмкін болатын мазмұнын бірегей түрде анықтайды. Яғни, «info» деп аталған элемент DocBook файлында қай жерде орналасқан болса да, бірдей ақпаратты қамтуы керек. Сондықтан DocBook 4.x-те «bookinfo», «chapterinfo» сияқты көптеген «info» элементтері бар. Әрқайсысының мазмұны сәл өзгеше, бірақ олардың мазмұнының бір бөлігі ортақ. Сонымен қатар, олар контексттік ақпаратты қайталайды. Кітаптың «info» элементі кітаптың тікелей баласы болғандықтан, оны адам оқырманы үшін арнайы атаудың қажеті жоқ. Дегенмен, формат DTD арқылы анықталғандықтан, оны осылай атау қажет болды. Түбір элементінде нұсқа жоқ және қажет емес, өйткені нұсқа DocBook 5 құжатының басындағы DTD жариялануына енгізілген. DocBook 4.x құжаттары DocBook 5 құжаттарымен үйлесімді емес, бірақ оларды XSLT стильдік парағы арқылы DocBook 5 құжаттарына түрлендіруге болады. Бір стильдік парақ («db4 upgrade.xsl») DocBook 5 схемасы мен ерекшеліктер жинағының бір бөлігі ретінде ұсынылады.

Шығару форматтары

DocBook файлдары әртүрлі форматтағы шығыс файлдарын дайындау үшін қолданылады. Көбінесе, бұл DocBook XSL стильдік парақшаларын пайдалану арқылы іске асырылады. Бұл XSLT стильдік кестелері, олар DocBook құжаттарын көптеген форматтарға (HTML, XSL FO кейіннен PDF-ке түрлендіру үшін және т.б.) түрлендіреді. Бұл стильдік кестелер мазмұндама, сөздіктер және көрсеткіштер жасау үшін жеткілікті күрделі болуы мүмкін. Олар негізгі құжаттың белгілі бір бөліктерін таңдап, бір құжаттың әртүрлі нұсқаларын (мысалы, "оқулық" немесе "жылдам анықтамалық", олардың әрқайсысы материалдың бір бөлігінен тұрады) жасауды басқара алады. Пайдаланушылар өздерінің стильдік кестелерін немесе тіпті DocBook-ті қажеттіліктеріне сәйкес тиісті шығыс форматына өңдеу үшін толыққанды бағдарлама жаза алады. Норман Уолш және DocBook жобасының дамыту тобы DocBook бастапқы құжаттарынан шығыс жасау үшін негізгі қолданбаны ұстап тұрады: жоғары сапалы HTML және басып шығару (FO/PDF) шығысын, сондай-ақ RTF, man беттері және HTML көмегін қоса алғанда, басқа форматтарда шығыс беретін XSLT стильдік кестелер жиынтығы (сонымен қатар DSSSL стильдік кестелерінің ескі жиынтығы). Веб-көмек веб-көмек мысалын да ұсынады және DocBook XSL тарату бөлігі болып табылады. Басты ерекшеліктері – толық CSS негізіндегі беттік макет, көмек мазмұнын іздеу және ашылатын ағаш түріндегі мазмұндама. Іздеуде түбір табу, сәйкестікті бөліп көрсету, беттерді бағалау және стандартты көп тілді токендеу бар. Іздеу және мазмұндама фреймдер жиынтығы ретінде көрінеді, бірақ іс жүзінде div тегтері мен cookie файлдарымен іске асырылған (осылайша ол прогрессивті болады).

Жайдастырылған DocBook

DocBook жаңа пайдаланушыға көптеген мүмкіндіктер ұсынады, олар шатастырушы болуы мүмкін. DocBook-тың ыңғайлылығын, бірақ күрделі оқу процесін қаламайтындар үшін Simplified DocBook әзірленді. Бұл мақалалар немесе ақ қағаздар сияқты жеке құжаттарға арналған DocBook-тың кіші жиынтығы (яғни, "кітаптар" қолдау көрсетілмейді). Simplified DocBook DTD қазіргі таңда 1.1 нұсқасында.

Сын

OpenBSD-нің mandoc авторы Инго Шварце man беттері үшін семантикалық mdoc макросын DocBook-тан артық деп санайды. DocBook-ты mdoc-қа түрлендіргіш жасауға тырысқанда (алдыңғы docbook-тан man-ға түрлендіргіштер семантикалық элементтерді қамтымайды), ол семантикалық бөлімдерді mdoc-те қамтылған элементтермен салыстырғанда "бір уақытта ісінген, артық және толық емес" деп тапты. Сонымен қатар, Шварце DocBook спецификациясын тагтарды қолдану бойынша жеткілікті нақты емес, тілдің нұсқалары арасында портативті емес, егжей-тегжейлі тұрғыда дөңгелек және жалпы алғанда үйлесімсіз деп санайды.