# DocBook

DocBook és un llenguatge de marques semàntic per a documentació tècnica. Originalment es va preveure per a escriure document tècnics relacionats amb maquinari i programari d'ordinadors però també es pot fer servir per a qualsevol tipus de documentació.
En ser un llenguatge semàntic, DocBook permet als usuaris crear el contingut del document independentment de la seva presentació de manera que el contingut es pot publicar en diversos formats, entre ells HTML, XHTML, EPUB, PDF, pàgines de man i ajuda HTML sense necessitat de fer cap canvi al document.

## Introducció

DocBook és un llenguatge XML. En la versió actual (5.0), està formalment definit per un esquema RELAX NG amb regles Schematron integrades. (També hi ha un esquema XML+Schematron i una definició de tipus de document (DTD), però no són considerats estàndard).
Com que és un llenguatge semàntic, els documents DocBook no descriuen l'aparença del seu contingut, sinó el significat d'aquest contingut. Per exemple, en comptes d'explicar com s'ha de formatar un sumari d'un article, DocBook simplement diu que una secció en particular és el sumari. Decidir a on i com es mostra, si és que s'ha de mostrar, el resum a la plana és feina de l'eina o l'aplicació externa que processa el document.
DocBook disposa d'un gran nombre d'etiquetes per a descriure elements semàntics, dividides en tres gran categories: estructurals, de bloc i de línia.
Les etiquetes estructurals són les que especifiquen característiques generals del contingut. Per exemple, l'element book especifica que els elements fills formen part d'un llibre, com som el títol, capítols, glossaris, apèndixs, etc. Alguns dels elements estructurals són:
* set: un conjunt amb títol d'un o més book. Els conjunts poden estar aniuats dins d'altres col·leccions.
* book: un conjunt amb títol de chapter, article i/o part, amb glossaris, apèndixs, i altres elements opcionals.
* part: un conjunt amb títol d'un o més chapter que poden estar aniuats dins d'altres parts. Poden tenir un text especial d'introducció.
* article: un conjunt sense numerar i amb títiol d'elements de blocs.
* chapter: un conjunt numerat i amb títol d'elements de blocs. DocBook no necessita que els capítol indiquin explícitament el seu número; se sobreenten que el número d'un capítol és el número de l'anterior més 1.
* appendix: El text contingut en aquest element representa ún apèndix.
* dedication: Els text contingut en aquest element representa una dedicatòria.
Els elements estructurals poden contenir altres elements estructurals, però tots els elements de primer nivell han de ser sempre estructurals.
Les etiquetes de bloc són elements com ara paràgrafs, llistes, etc., però no tots ells han de contenir text necessàriament. Els elements de bloc col·locats de manera seqüencial són visualitzats un "després" de l'altre. Després, en aquest cas, pot ser diferent segons la cultura. El la majoria de les llengües occidentals, "després" significa avall: els paràgrafs s'imprimeixen de manera descendent a la pàgina. D'altres llengües poden tenir un sistema d'escriptura en què els textos s'escriuen en columnes, com ara el japonès, on els paràgrafs van de dreta a esquerra. En aquests casos, "després" voldria dir a l'esquerra. La semàntica de DocBook és completament neutral a aquest tipus de conceptes intrínsecs a cada llengua.
Les etiquetes de línia representen elements com ara èmfasis, hyper-enllaços, etc. Se solen aplicar a parts del texts dins d'elements de bloc provocant, generalment, que l'eina de processament del document apliqui algun tipus de distinció tipogràfica especial a aquest text, com canvis de la mida de la font, or atributs especials. L'especificació de DocBook diu que espera un tractament tipogràfic especial, però no indica exactament quin tractament específic s'ha d'aplicar. Per exemple, no és obligat que un processador de DocBook transformi una etiqueta emphasis a "cursiva". Una eina de reproducció de text a veu podria augmentar el volum de les paraula, o un processador de textos podria fer servir negreta en comptes de cursiva.

### Exemple

Des d'un punt de vista semàntic, aquest document és un "llibre" amb un "títol" que conté dos "capítols", cada un amb el seu propi "títol". Aquests "capítols" conten "paràgrafs" de text. Tots els elements són fàcilment comprensible per a les persones.
Més detalladament, l'element arrel del document és book. Tots els elements de DocBook es troben en un espai de noms XML, de manera que l'element arrel ha de contenir l'atribut xmlns per indicar el seu espai de noms. A més, l'element arrel d'un document DocBook ha d'especificar la versió del format del document.
Un element book ha de contenir forçosament un title o un element info que contingui un title. Aquest títol ha de venir abans de qualsevol element estructural fill. A continuació del títol venen els elements estructurals que, en aquest cas, són dos chapter. Cada un d'ells ha de contenir un title. També tenen elements de bloc para amb text i altres elements de línia com ara el emphasis del segon paràgraf del primer capítol.

### Edició de documents DocBook

Com que DocBook és de fet XML, els document es poden editar amb qualsevol editor de text. De la mateixa manera, un editor de XML es pot fer servir per a editar documents en DocBook. Alguns editors gràfics o de tipus WYSIWYG poden editar documents DocBook com si fossin un processadors de textos corrent.

### Processament

Precisament perquè el DocBook és un format XML, es poden processar els documents que segueixin correctament l'esquema amb eines o llenguatges de programació que suportin XML.
Aquestes eines se solen utilitzar per crear document en un gran àmbit de formats. Quasi sempre, això s'aconsegueix utilitzant fulles d'estil de DocBook XSL, que són fulles d'estil XSLT que transformen el document DocBook a altres formats (HTML, XSL-FO per convertir-lo després a PDF, etc.) Aquestes fulles d'estil són suficientment sofisticades per a generar automàtica de taules de continguts, glossaris i índexs. Fins i tot permeten filtrar seccions en particular d'un document mestre per a generar versions diferents del mateix document (com ara "tutorials" o "guies de referència ràpida" on ambdós són un subconjunt del material).

## Història

DocBook va néixer el 1991 com un projecte conjunt de HAL Computer Systems i O'Reilly & Associates evolucionant, posteriorment, en la seva pròpia organització (el Grup Davenport) fins a acabar, el 1998, gestionat pel consorci SGML Open, que més tard esdevingué l'organització OASIS. El DocBook Technical Comittee dins d'OASIS és l'encarregat de mantenir DocBook.
L'especificació de DocBook està disponible tant en SGML com en XML. Existeixen formats en RELAX NG i W3C XML Schema per a la definició en XML. A partir de la versió 5, la versió RELAX NG és la "normativa" i els altres format es generen a partir d'aquesta. Tot i que DocBook cam començar originalment com una aplicació SGML, avui dia la versió XML és la més utilitzada per la majoria dels casos. Fins i tot, a partir de la versió 4, la versió en XML ha començat a seguir la seva pròpia numeració de versions. Al principi només el grup d'empreses responsables del disseny del DocBook el feien servir. Tanmateix, eventualment, la comunitat de programari lliure ha adoptat DocBook com el format estàndard per a crear documentació dins de diversos projectes, com són FreeBSD, KDE, GNOME, GTK+ i Linux. Normal Walsh i l'equip de desenvolupament del Projecte DocBook mantenen les eines clau per generar els diversos formats a partir de documents DocBook: un conjunt de fulles d'estil XSL, així com el conjunt de fulles d'estil DSSSL, que poden generar fitxers HTML i PDF d'alta qualitat i també en altres formats com ara RTF. Walsh és també el principal autor del llibre DocBook: The Definitive Guide, la documentació oficial de DocBook. Aquest llibre es distribueix lliurement sota la GFDL.

## Vegeu també

* AsciiDoc