# XML/DocBook

XML
Copertina Tutti i moduli · Sviluppo
PrefazioneXML/Prefazione
* IntroduzioneXML/Introduzione
* Entità singoleXML/Entità singole
* Strutture dati di baseXML/Strutture dati di base
* Relazione uno-moltiXML/Relazione uno-molti
* Relazione uno-unoXML/Relazione uno-uno
* Relazione molti-moltiXML/Relazione molti-molti
* Relazioni ricorsiveXML/Relazioni ricorsive
* Schemi di datiXML/Schemi di dati
* Document Type Definition (DTD)XML/DTD
* XHTMLXML/XHTML
* XPathXML/XPath
* XLinkXML/XLink
* CSSXML/CSS
* XSLT e fogli di stileXML/XSLT e fogli di stile
* CocoonXML/Cocoon
* Parsing di file XMLXML/Parsing di file XML
* XULXML/XUL
* Asynchronous JavaScript and XML (AJAX)XML/AJAX
* Web serviceXML/Web service
* XMLHttpRequestXML/XMLHttpRequest
* Database e XMLXML/Database e XML
* SVGXML/SVG
* VoiceXMLXML/VoiceXML
* DocBookXML/DocBook
* SMILXML/SMIL
* XBRLXML/XBRL
* WDDX
* RPCXML/RPC
* RDFXML/RDF - Resource Description Framework
* RSSXML/RSS
* NamespaceXML/Namespace
* Gestire XML con MySQL
* XML EncryptionXML/XML Encryption
* XQueryXML/XQuery
* XML e JDBC
* XFormsXML/XForms
* OpenOffice.org e l'OpenDocument FormatXML/OpenOffice.org e l'OpenDocument Format
* KML e Google EarthXML/KML
* Lo standard ACORD - XML nel settore delle assicurazioniXML/ACORD
Modifica il sommario
Obiettivi di apprendimento
* Conoscere le basi di DocBook
* Creare un documento DocBook utilizzando il DTD DocBook
* Convertire un documento di testo in un documento DocBook
* Usare i fogli di stile XSL per trasformare un documento DocBook XML in più formati come diapositive HTML, PDF o di presentazione.
DocBook è un vocabolario XML e SGML particolarmente adatto a libri, articoli e documenti. Ha un definizione (DTD) ampia, potente e di facile comprensione e le sue strutture principali corrispondono all'idea generale di ciò che costituisce un libro. DocBook è però un argomento complesso che non può essere trattato in modo esauriente in poche pagine. Pertanto, ai fini di questo capitolo, parleremo della creazione di un semplice documento DocBook con i principali elementi del DTD DocBook e della pubblicazione del documento, così da dare un'idea di DocBook. Se si desidera approfondire l'argomento, si consiglia di dare un'occhiata ai riferimenti forniti alla fine del capitolo.

## Che cos'è DocBook?

* DocBook ti consente di creare e archiviare il contenuto del documento in una forma indipendente rispetto alla presentazione, dedicandosi solo alla struttura logica del contenuto.
* Ha un DTD di facile comprensione e ampiamente utilizzato. I tag DocBook vengono applicati in modo da avere un un nome di "buon senso", facilmente comprensibile per chi conosce l'inglese.
* Al momento non ci sono versioni ufficiali dello schema XML DocBook W3C. Il comitato tecnico di DocBook ha in programma di offrire uno schema ufficiale nel periodo di tempo di DocBook V5.0. Gli esempi forniti in questo capitolo utilizzeranno l'attuale DTD ufficiale.

### DTD vs. Schema

Un DTD contiene le dichiarazioni di markup che formano una grammatica per una classe di documenti. Uno schema è un insieme di vocabolari condivisi che consentono alle macchine di eseguire le regole stabilite dai creatori. Fornisce un mezzo per definire la struttura, il contenuto e la semantica dei documenti XML. In sintesi, gli schemi sono un mezzo più ricco e più potente per descrivere le informazioni rispetto ai DTD.
Ecco un semplice documento XML:
Ecco il DTD per questo documento:
Ed ecco lo SCHEMA:

### Formati di output per DocBook

I fogli di stile XSL (Extensible Style Language) possono trasformare DocBook XML nei seguenti formati:
* HTML
* HTML Help (per la Guida di Windows)
* Java Help
* XHTML
* XSL Formatting Objects (FO)
* PDF
I fogli di stile DSSSL (Document Style Semantics and Specification Language) possono trasformare DocBook SGML nei seguenti formati:
* HTML
* MIF
* RTF
* TeX

### Breve storia

DocBook è stato creato intorno al 1991 da HaL Computer Systems e O'Reilly & Associates. È stato sviluppato principalmente allo scopo di contenere i risultati della conversione troff della documentazione UNIX, in modo che i file possano essere scambiati. Ora è gestito da OASIS. Il sito ufficiale di DocBook è http://www.oasis-open.org/docbook/

### Usi

DocBook è utilizzato per:
* libri per la stampa e pubblicazioni commerciali. Molti autori utilizzano DocBook per scrivere libri di ogni tipo, in vari formati di stampa e online, in tutto il mondo;
* articoli e tesi di laurea;
* manutenzione di siti Web;
* produzione di diapositive di presentazione e volantini;
* documentazione per software e hardware commerciale.

### Strumenti DocBook

DocBook è ufficialmente disponibile come DTD sia per XML che per SGML. Si può scaricare sia il DTD DocBook XML più recente sia il DTD SGML DocBook dal sito ufficiale DocBook su OASIS. Gli esempi forniti in questo capitolo utilizzeranno il DTD DocBook XML. Alcuni schemi sperimentali di DocBook sono disponibili su sourceforge.net. DocBook è supportato da numerosi strumenti commerciali e open source. Alcuni DocBookStylesheets "standard" facilmente personalizzabili ed estensibili sono disponibili da DocBookOpenRepository insieme ad altri strumenti open source gratuiti. Vedi DocBookTools sul Wiki di DocBook per un elenco più completo di strumenti commerciali e open source.

#### Altri strumenti gratuiti

* XSLTProc: uno dei processori più conosciuti e veloci
* Apache FOP: implementazione XSL-FO
* Xt: uno dei processori XSLT originali. Usata meno frequentemente ora
* DocBook2x: converte DocBook in pagine man e Texinfo
* Refdb: crea database per riferimenti e bibliografie da DocBook

#### Strumenti commerciali

* Arbortext Epic: suite completa di strumenti di modifica ed elaborazione
* RenderX XEP: motore di rendering da FO a PDF
* Antenna House XSL Formatter: motore di rendering da FO a PDF

### SGML vs XML

La sintassi di SGML e XML DTD è molto simile ma non identica. La più grande differenza tra il DTD DocBook per SGML e quello per XML è che il DTD SGML contiene esclusioni SGML in alcuni modelli di contenuto.
Esempio: SGML DTD esclude <footnote> come discendente di <footnote>, perché non ha molto senso pratico avere delle note che hanno a loro volta della note. I DTD XML non possono contenere esclusioni, quindi se stai utilizzando il DTD XML DocBook, è possibile produrre documenti contenenti alcuni markup validi ma non logici come le note a piè di pagina.

## Creazione di un documento DocBook

Per iniziare, avrai bisogno di:
* Un editor XML. Scarica NetBeans IDE se non l'hai ancora fatto.
* Il DTD XML di DocBook. Sebbene sia facoltativo usarne uno, i DTD sono utili quando si desidera convalidare un documento per verificare che sia effetivamente conforme al DTD a cui si fa riferimento. Pertanto, il DTD DocBook può essere utilizzato per convalidare un documento DocBook presunto. DocBook XML 4.2 è la versione corrente di DocBook DTD. Scarica dal sito Web ufficiale di DocBook
* I fogli di stile DocBook XSL sono gestiti principalmente da Norman Walsh. Esistono due set di fogli di stile: XSL e DSSSL
* Un processore XSLT (trattato nelle ulteriori sezioni)
Ecco ora un semplice esempio di libro in DocBook, "book.xml":
Un semplice articolo in DocBook, "article.xml"
Esaminiamo i dettagli di un documento DocBook. L'intestazione standard di un file XML DocBook è una dichiarazione DocType:
Questo indica agli strumenti di manipolazione XML il DTD in uso. Name è il nome dell'elemento radice del documento. FORMALID viene sostituito con l'identificatore PUBLIC o SYSTEM o entrambi. PUBLIC identifica il DTD a cui il documento è conforme. SYSTEM esplicita la posizione del DTD utilizzato nel documento mediante un URI (Uniform Resource Indicator). Gli identificatori PUBLIC sono opzionali nei documenti XML sebbene gli identificatori SYSTEM siano obbligatori nella dichiarazione DOCTYPE.
Ecco quindi un altro esempio
Il codice riporta le seguenti informazioni:
* Proprietario: Oasis
* Descrizione parola chiave: DTD DocBook XML V4.2
* Lingua: EN (inglese)
Attenzione! Se non sei online, devi modificare l'identificatore del sistema URL con il percorso in cui è installato DTD:

## Dividere un documento in parti

Prima di iniziare, ecco un suggerimento utile! Per comodità e per migliorare le prestazioni, potresti prendere in considerazione la possibilità di suddividere un documento in blocchi e lavorare su ciascun blocco separatamente. Se hai un libro composto da tre capitoli e due appendici, potresti creare un file chiamato book.xml, che assomiglierà a questo:
È quindi possibile scrivere comodamente i capitoli e le appendici in file separati. Ecco perché DocBook è adatto a contenuti di grandi dimensioni. Si noti che questi file separati non hanno e non devono avere dichiarazioni del tipo di documento.
Ad esempio, il capitolo 1 potrebbe iniziare in questo modo:

## Dividere un documento in parti logiche

Esistono, letteralmente, centinaia di elementi DocBook. Questo è ciò che rende docBook molto potente. Cercheremo di coprire qui quelli principali e di lasciarti esaminare il resto da solo. Gli elementi DocBook possono essere suddivisi in queste categorie:
| Set | collezione di libri |
| Book | libri |
| Division | divide i libri in parti |
| Component | divide i libri o le loro parti in capitoli |
| Section | suddivide le componenti |
| Meta-information Elements | contiene informazioni sugli altri elementi |
| Block Elements | hanno effetto a livello di paragrafo |
| Inline Elements | usati per il markup del testo |

## Principali elementi di DocBook
### Set: una collezione di libri

set è il vertice della gerarchia strutturale di DocBook. Non c'è nulla che contenga un set.
Alcuni elementi secondari sono: Book, SetIndex, SetInfo, Subtitle, Title, TitleAbbrev, ToC (indice).

### Book: un libro

Book è probabilmente l'elemento di primo livello più comune in un documento. La definizione di DocBook di un libro è molto ampia e generale. Ti dà ampia libertà non imponendo un rigoroso ordinamento di elementi.
Alcuni elementi figli: Appendix, Article, Bibliography, BookInfo, Chapter, Colophon, Dedication, Glossary, Index, LoT, Part, Preface, Reference, SetIndex, Subtitle, Title, TitleAbbrev, ToC.

### Division: una raccolta di parti e riferimenti (opzionale)

Le division sono il primo livello gerarchico al di sotto sotto di book.
Elementi secondari: Part (contiene componenti), Reference (contiene RefEntrys)

### Componenti: elementi simili a capitoli di un libro o di una parte

Questi sono Preface, Chapter, Appendix, Glossary, Bibliography e Article. I componenti generalmente contengono elementi a blocchi o sezioni, e alcuni possono contenere componenti di navigazione e RefEntrys.

### Sezioni: diversi elementi di sezionamento

Per il sezionamento sono previsti diversi elementi.
* Sect1 ... Sect5: sono gli elementi di sezionamento più comuni che possono trovarsi nella maggior parte degli elementi a livello di componente. Questi elementi di sezione numerati devono essere nidificati correttamente (Sect2 può trovarsi solo all'interno di Sect1, Sect3 può avvenire solo all'interno di Sect2 e così via).
* section: un'alternativa alle sezioni numerate. Le sezioni sono ricorsive, quindi è possibile nidificarle a qualsiasi profondità desiderata.
* SimpleSect: una sezione terminale che può trovarsi a qualsiasi livello. SimpleSect non può avere nessun altro elemento di sezionamento nidificato al suo interno.
* BridgeHead: un titolo di sezione senza alcuna sezione di contenuto
* RefSect1 ... RefSect3: elementi di sezione numerati in RefEntrys # GlossDiv, BiblioDiv e IndexDiv: elementi che non prevedono nidificazione

### Elementi per meta-informazioni

Tutti gli elementi a livello di sezione e superiori includono un wrapper per meta-informazioni sul contenuto. Esempi di meta-wrapper: BookInfo, ArticleInfo, ChapterInfo, PrefaceInfo, SetInfo, GlossaryInfo.

### Elementi block vs. inline

Esistono due classi di elementi a livello di paragrafo: block e inline.
Gli elementi a blocchi (block) sono generalmente presentati con un'interruzione di paragrafo prima e dopo di essi. La maggior parte può contenere altri elementi di blocco e molti possono contenere dati di caratteri ed elementi incorporati. Esempi di elementi di blocco sono: paragrafi, elenchi, barre laterali, tabelle e citazioni.
Gli elementi incorporati (inline) sono generalmente rappresentati senza evidenti interruzioni. Il segno distintivo più comune degli elementi incorporati è un cambio di carattere, ma a seconda dei casi potrebbero non presentare alcuna distinzione visiva. Gli elementi incorporati contengono dati carattere e possibilmente altri elementi incorporati, ma non contengono mai elementi blocco. Sono utilizzati per contrassegnare i dati. Alcuni esempi sono: riferimenti incrociati, nomi di file, comandi, opzioni, pedici e apici e termini di glossario.

### Elementi a blocchi

Gli elementi block si trovano immediatamente sotto il componente e gli elementi di sezionamento.
| CalloutList | Un elenco di segni, spesso numerati e generalmente messi in un ambiente grafico o testuale con le relative descrizioni |
| GlossList | Un elenco di termini del glossario e le relative definizioni |
| ItemizedList | Un elenco non ordinato (puntato) |
| OrderedList | Un elenco numerato |
| SegmentedList | Un insieme ripetuto di elementi con nome. Ad esempio, un elenco di stati e le loro capitali potrebbe essere rappresentato come un SegmentedList |
| SimpleList | Un elenco di elementi senza punti o numeri |
| VariableList | Un elenco di termini e definizioni o descrizioni |
Ecco un esempio SegmentedList, "statecapital.xml":
L'output di "statecapital.xml":
Le capitali degli stati degli Stati Uniti d'America sono: Capitali di stato Stato: Georgia Capitale: Atlanta Stato: Alaska Capitale: Juneau Stato: Arkansas Capitale: Little Rock
Qui invece un esempio con <orderedlist>, "mashpotatoe.xml"
L'ouput di "mashpotatoe.xml" sarà
I.Preparation  A.Chop tomatoes  B.Peel onions  C.Mash potatoes II.Cooking  A.Boil water  B.Put tomatoes and onions in  C.Blanch for 5 minutes

#### Avvisi

Esistono cinque tipi di avvisi: Caution, Important, Note, Tip e Warning.

#### Ambienti specifici per linea

Gli ambienti specifici per linea preservano spazi bianchi e interruzioni di linea.
| Address | Un indirizzo nel mondo reale, generalmente un indirizzo postale |
| LiteralLayout | Un blocco di testo in cui le interruzioni di riga e lo spazio bianco devono essere riprodotti fedelmente |
| ProgramListing | Un elenco letterale di tutto o parte di un programma |
| Screen | Testo che un utente vede o potrebbe vedere sullo schermo di un computer |
| ScreenShot | Una rappresentazione di ciò che l'utente vede o potrebbe vedere sullo schermo di un computer |
| Synopsis | Un elemento generico per rappresentare la sintassi di comandi o funzioni |

#### Elementi comuni a livello di blocco

Gli elementi comuni a livello di blocco includono esempi, figure e tabelle. La distinzione tra elementi formali e informali è che gli elementi formali hanno titoli mentre quelli informali no.
Example, InformalExample
Figure, InformalFigure
Table, InformalTable

#### Paragrafi

I paragrafi sono Para, SimPara (i paragrafi semplici non possono contenere altri elementi a livello di blocco) e FormalPara (i paragrafi formali hanno titoli). I paragrafi sono gli elementi di alto livello più comunemente usati che possono contenere elementi a blocchi come itemizedlist e Mediaobject e possono contenere quasi tutti gli elementi incorporati.

#### Equazioni

Equation e InformalEquation (senza titoli)

#### Grafica

InlineGraphic, MediaObject, InlineMediaObject: questi elementi possono contenere dati video, audio, di immagine e di testo. Un singolo oggetto multimediale può contenere diverse forme alternative da cui il sistema di presentazione può selezionare l'oggetto più appropriato.

### Elementi incorporati

Nei documenti pubblicati, gli elementi in linea spesso causano una modifica del carattere o altre piccole modifiche, ma non provocano interruzioni di riga o di paragrafo.
| Abbrev | Un'abbreviazione, in particolare se seguita da un punto |
| Acronym | Una parola composta dalle lettere iniziali (o selezionate) di un nome o una frase |
| Emphasis | Testo enfatizzato |
| Footnote | Una nota a piè di pagina; la posizione di Footnote identifica la posizione del primo riferimento alla nota a piè di pagina. Ulteriori riferimenti alla stessa nota a piè di pagina possono essere inseriti con FootnoteRef |
| Phrase | Uno stralcio di testo |
| Quote | Una citazione in linea |
| Trademark | Un marchio |
| Citation | Un riferimento bibliografico in linea ad un'altra opera pubblicata |
| GlossTerm | Un termine di glossario |
| Link | Un collegamento ipertestuale |
| ULink | Un collegamento che contiene l'indirizzo del suo oggetto tramite un URL (Uniform Resource Locator) |
| XRef | Un riferimento incrociato a un'altra parte del documento |
| ForeignPhrase | Una parola o frase in una lingua diversa dalla lingua principale del documento |
| ComputerOutput | Dati, generalmente di testo, visualizzati o presentati da un computer |
| Markup | Una stringa di markup di formattazione nel testo che deve essere rappresentata alla lettera |
| Replaceable | Contenuto che può o deve essere sostituito dall'utente |
| UserInput | Dati inseriti dall'utente |
| Literal | Testo incorporato che ha un valore letterale |
| Command | Il nome di un programma eseguibile o di un altro comando software |
| MsgText | Il testo effettivo di un componente del messaggio in un set di messaggi |
| Optional | Informazioni opzionali |
| Email | Un indirizzo email |
| Database | Il nome di un database o di una parte di un database |
| Filename | Il nome di un file |
| Token | Un'unità di informazioni |
| Type | La classificazione di un valore |
| Application | Il nome di un programma software |
Le seguenti entità sono usate per caratteri speciali:
| Carattere | Entità |
| < | & lt; |
| > | & gt; |
| & | & amp; |
| " | & quot; |

## Pubblicazione di un documento DocBook

Il Document Style Semantics and Specification Language (DSSSL) è un linguaggio per fogli di stile destinato sia per la stampa che per il rendering online. È principalmente destinato a funzionare con SGML.
L'Extensible Stylesheet Language (XSL) è un linguaggio per fogli di stile scritti in XML. Include il linguaggio dell'oggetto da formattare, ma fa riferimento a documenti separati per il linguaggio di trasformazione e il linguaggio del percorso. In questo capitolo utilizzeremo i fogli di stile XSL perché sono più potenti, sono già stati descritti in un modulo precedente e sono pensati per funzionare con XML.

### Fase 1: procurati i fogli di stile standard

DocBook separa rigorosamente il contenuto e l'aspetto di un documento. Un documento DocBook spiega solo la semantica del documento, non la sua formattazione o il suo aspetto. Per pubblicare il tuo documento DocBook, dovrai utilizzare una serie di fogli di stile DSSSL o XSL che descrivono la formattazione e un processore XSL.
Se stai pensando che sarebbe molto difficile scrivere i tuoi fogli di stile XSL, hai ragione. La buona notizia è che non è necessario. Esistono molti fogli di stile XSL standard disponibili gratuitamente per DocBook gestiti principalmente da Norman Walsh.
Assicurati di scaricare l'ultima versione di questi fogli di stile su Sourceforge.net. La distribuzione del foglio di stile consiste in una raccolta di file XSL modulari che sono assemblati in diversi fogli di stile XSL completi. Esiste un foglio di stile per la generazione di un singolo file HTML e uno per la generazione di più file HTML più piccoli da un singolo documento DocBook. Esistono fogli di stile per l'output di stampa, l'output XHTML, l'output della HTML Help e l'output JavaHelp. Poiché esistono processori XSL per tutti i principali tipi di computer, è possibile utilizzare DocBook su computer Unix, Linux, Windows e Macintosh. Usando questi fogli di stile predefiniti installati sul tuo sistema, è abbastanza facile creare fogli di stile personalizzati. Ma non dimenticare di notare che l'approccio comune per personalizzare i fogli di stile consiste nel creare un livello di personalizzazione anziché modificarli direttamente.

### Fase 2: scarica un processore XSLT

Per pubblicare HTML dai tuoi documenti XML, avrai bisogno di un motore XSLT. Per stampare, è necessario un motore XSLT per produrre oggetti di formattazione (FO), che devono quindi essere elaborati con un motore FO per produrre output PostScript o PDF. Sono disponibili vari motori XSLT. Ecco un elenco di alcuni gratuiti / open-source che potresti prendere in considerazione. Nota che xsltproc e Saxon sono attualmente gli unici motori XSLT consigliati per l'uso con DocBook.

#### Motori XSLT

* Xsltproc: un processore gratuito scritto in C, disponibile come parte della libreria open source libxml2 dal progetto di sviluppo di Gnome. È considerato il più veloce tra i processori ed è altamente conforme alle specifiche.
* Saxon: un processore gratuito scritto in Java, che può essere eseguito su qualsiasi sistema operativo con un moderno interprete Java. Utilizza internamente il parser Aelfred XML, che presenta alcuni bug, quindi molte persone sostituiscono il parser Xerces.
* Xalan: Xalan fa parte del progetto Apache XML. Ha versioni scritte sia in Java che in C++, entrambe gratuite. La versione Java è altamente portatile e maggiormente sviluppata. Generalmente Xalan viene utilizzato con il parser XML Xerces (Java o C++), disponibile anche dal progetto XML Apache.
La scelta del motore XSLT può dipendere molto dall'ambiente in cui verrà eseguito il motore. Molti utenti di DocBook che necessitano o desiderano un'applicazione non Java utilizzano xsltproc. È molto veloce e i suoi sviluppatori rispondono molto rapidamente a segnalazioni di bug e domande. Ma una delle attuali limitazioni di xsltproc è che non supporta ancora le funzioni di estensione XSLT specifiche per DocBook di Norm Walsh.
Saxon è il più popolare per l'uso in un ambiente Java. Supporta anche le funzioni di estensione XSLT specifiche per DocBook di Norm Walsh.
NetBeans IDE ha un processore XSLT integrato che utilizza il parser XALAN per impostazione predefinita. NetBeans IDE non solo ti consente di convalidare i tuoi documenti XML, ma esegue anche le trasformazioni XSL proprio nell'IDE. Tuttavia, non fornisce alcun debug XSLT, quindi potresti voler ottenere un IDE XSL decente (ad esempio, XML Spy o Xcelerator) per un serio lavoro XSLT.

#### Motori FO

Per generare output di stampa/PDF da file FO, esistono due motori FO liberi e/o open source:
* PassiveTeX
* FOP: un processore basato su Java del progetto Apache XML

### Fase 3: personalizza i fogli di stile XSL
#### Output in HTML

* Il punto di forza dei fogli di stile standard è che sono facilmente personalizzabili.
* I parametri si trovano in params.xsl
* Richiama il tuo layer personalizzato anziché il foglio di stile standard
Un esempio di foglio di stile XSL personalizzato, "myxsl1.xsl"
* Oltre all'impostazione dei parametri, è possibile modificare i "modelli" XSLT per sovrascrivere un comportamento predefinito
* È necessaria almeno una conoscenza minima di XSLT
Secondo esempio di foglio di stile XSL personalizzato, "myxsl2.xsl"

#### Output in PDF

In genere richiede un processo in due fasi:
* Generazione di FO da XML
* Generazione di PDF da FO
Questo è un foglio di stile XSL per generare FO, "myxsl3.xsl":

#### Estensioni per slide

* Creazione di diapositive per presentazioni da DocBook XML
* È possibile creare HTML (con o senza frame) e FO
* Utilizza gli elementi DocBook all'interno di una specifica struttura gerarchica
* Scaricabile da DocBook Open Repository su SourceForge

#### Estensioni per siti web

* Creazione di siti Web da una raccolta di file XML DocBook
* Utilizza la maggior parte degli elementi di DocBook in un framework specifico. Ha file separati che controllano la navigazione e la gerarchia delle pagine.
* Scaricabile da DocBook Open Repository su SourceForge.

## Perché usare DocBook?

Quello descritto sembra certamente un lavoro enorme, no? Non hai torto. Perché allora ci prendiamo la briga di usare DocBook?
* È portatile! Un documento scritto con il markup DocBook può essere facilmente e rapidamente convertito in HTML, PostScript, PDF, RTF, DVI, ASCII, il tutto senza ricorrere a strumenti costosi.
* È flessibile! Consente l'output in più formati, tra cui HTML, PDF, presentazioni e molti altri.
* Separa il contenuto dall'aspetto! DocBook si occupa solo della struttura di un documento. Libera l'autore dal preoccuparsi della formattazione e del layout di un documento.
* È facile da capire! La maggior parte degli elementi di DocBook si spiega da sé.
* Può gestire grandi quantità di contenuto. Puoi dividere fisicamente il documento in diversi file e lavorarci separatamente e comodamente.
* È gratis! Ci sono molti strumenti open source disponibili gratuitamente per lavorare con DocBook.
DocBook è adatto a qualsiasi raccolta di documentazione tecnica che viene regolarmente mantenuta e pubblicata. Più autori possono contribuire a un singolo documento e il loro contenuto può essere facilmente unito perché tutti gli autori utilizzano un linguaggio di markup standard altamente strutturato. C'è solo un piccolo punto da tenere a mente: poiché la formattazione per i documenti DocBook è rigorosamente realizzata da fogli di stile, DocBook non è adatto a contenuti strettamente collegati al loro layout, come per esempio gli articoli delle riviste.
La configurazione di un sistema DocBook richiederà sicuramente tempo e fatica. Il risultato sarà un sistema di pubblicazione efficiente, flessibile e poco costoso, che è iterativo e che può crescere con le tue esigenze. Pertanto, ne vale la pena!

## Note

* ↑ DocBookTools
* ↑ Disponibile su http://xmlsoft.org/XSLT/
* ↑ Disponibile su http://xmlgraphics.apache.org/fop/
* ↑ Disponibile su www.jclark.com
* ↑ Disponibile su Sourceforge
* ↑ Disponibile su Sourceforge
* ↑ Disponibile sul sito Web Arbortext website
* ↑ Disponibile sul sito http://www.renderx.com/products.html RenderX website]
* ↑ Disponibile sul sito web Antenna Housewebsite
* ↑ NetBeans IDE
* ↑ Scarica l'ultima versione XSL 1.65.1 da Sourceforge.net
* ↑ Una guida di riferimento rapido per gli elementi DocBook: http://www.docbook.org/tdg/en/html/ref-elements.html
* ↑ Pagina di riferimento: http://www.oreilly.com/catalog/docbook/chapter/book/set.html
* ↑ Pagina di riferimento: http://www.oreilly.com/catalog/docbook/chapter/book/book.html
* ↑ Pagina di riferimento: http://www.oreilly.com/catalog/docbook/chapter/book/section.html
* ↑ Pagina di riferimento: http://www.docbook.org/tdg/en/html/para.html
* ↑ Sourceforge.net - Stylesheets Repository
* ↑ Vedi http://xmlsoft.org/XSLT/
* ↑ Vedi http://saxon.sourceforge.net/
* ↑ Vedi http://xml.apache.org/
* ↑ Disponibile su http://www.tei-c.org.uk/Software/passivetex/index.xml.ID=body.1_div.1
* ↑ disponibile su http://xml.apache.org/fop/

## Collegamenti esterni

* DocBook Official Website
* DocBook: The Definitive Guide, by Norman Walsh and Leonard Muellner, published by O'Reilly & Associates, October 1999 http://www.docbook.org/
* Sourceforge - DocBook Open Repository
* Installing and Using DocBook - Copyright 2002, The University Of Birmingham
* Using the DocBook XSL Stylesheets - http://www.sagehill.net/docbookxsl/index.html
* Setting Up A Free XML/SGML DocBook Editing Suite For Windows And Unix
* http://lists.oasis-open.org/archives/docbook-apps/
* http://www.dulug.duke.edu/~mark/docbookmarks/
* http://www.linuxdoc.org/LDP/LDP-Author-Guide/
* http://www.nwalsh.com/docs/
* http://www.e-smith.org/docs/docprocess.html
* http://www.lodestar2.com/people/dyork/talks/docbook/
* DocBook mailing list: mailto:docbook@lists.oasis-open.org
* http://xml.openoffice.org/xmerge/docbook/