Skip to topic | Skip to bottom
Home

Tesi
Tesi.SiConForMir1.4 - 13 Jul 2007 - 12:28 - AlbertoQuadaltitopic end

Start of topic | Skip to actions

Si-ConForMi OXML 1.1

Progetto della tesi Conversione tra formati documentali aperti basati su XML - Alberto Quadalti, 2007

Simple Converter For Microsoft OpenXML (Si-ConForMi OXML) un convertitore bidirezionale che segue il modello di conversione con formato intermedio. Il software si basa sul principio di segmentazione dei documenti ed ha lo scopo di convertire il contenuto e la struttura di un documento Microsoft OpenXML WordprocessingML nel formato intermedio IML.

SiConForMi_OXML.jpg

L'applicativo supporta la conversione delle parti pi importanti per la comprensione di un documento di Word 2007. Esso supporta la conversione dei seguenti elementi:

  • testo e paragrafi
  • grassetto, corsivo, apice e pedice
  • nomi degli stili di utilizzo
  • link ipertestuali
  • segnalibri
  • immagini (e oggetti immagine bitmap)
  • tabelle
  • liste con annidamenti
  • contenuto delle caselle di testo
  • note a pi pagina
  • sezioni del documento
  • sottodocumenti
  • oggetti documento Word 2007
  • lingua dei frammenti

Inoltre nella conversione di un file IML a OpenXML vengono assegnati ai blocchi stili presentazionali predefiniti, in base al loro ruolo assunto nel documento.

Requisiti ed installazione

Il prerequisito per il corretto funzionamento dell'applicativo Runtime Java Sun JRE 1.5.0 o successivi.

Per poter installare l'applicativo sufficiente scompattare il file Si-ConForMi_OXML_1.1.zip in una cartella del sistema.

Utilizzo di Si-ConForMi OXML

Si-ConForMi OXML un'applicazione Java (.jar) che pu essere invocata a linea di comando. Il convertitore prende in input due argomenti:

  • [-oi | -io] (Direzione di conversione): ovvero -oi per poter effettuare la conversione da OpenXML a IML, -io per la conversione inversa;
  • [filepath]: il percorso assoluto o relativo del file oggetto della conversione;

Il risultato della conversione viene creato nella cartella corrente di lavorazione.

Esempio:

java -jar Si-ConForMi.jar -oi myDocument.docx

Implementazione

Si-ConForMi OXML implementato in Java ed basato su trasformazioni XSLT. Il sistema prevede l'utilizzo delle API SAX, DOM e TrAX.

Architettura.jpg

  1. Conversione OOXML - IML
  2. Conversione IML - OOXML

I compiti del motore di conversione sono:

  • Compressione/Decompressione dati: il formato OOXML un archivio compresso ZIP ed il sistema integra un modulo per la compressione e decompressione dei dati;
  • Mapping dei file XML: per poter effettuare una trasformazione con XSLT occorrono un foglio di stile ed un unico file XML sorgente delle informazioni. All'interno del pacchetto sono invece presenti molteplici file XML, per questo l'architettura prevede il loro mapping in un file unico con l'utilizzo di un semplice linguaggio per la descrizione fisica del pacchetto (MappingML). Ovviamente per la conversione ad IML viene effettuato il processo contrario (dal file di mapping vengono creati pi file XML);
  • Selezione dei file necessari alla conversione: al termine della decompressione non si a conoscenza della natura dei file che sono contenuti nel pacchetto OXML. Possono essere presenti file di tipo binario, fra i quali immagini e altri pacchetti OOXML che devono essere gestiti. Il sistema quindi prevede l'accesso ai file delle relazioni del pacchetto (_rels/.rels e word/_rels/document.xml.rels) per individuare il tipo dei file, espresso con MIME (Multipurpose Internet Mail Extensions);
  • Applicazione dei fogli di stile: l'applicazione al file di mapping (o al file IML, a seconda della direzione di conversione) dei fogli di stile XSLT;

Per eventuali dettagli di implementazione questa la mia tesi.

Problemi e bug noti

  • Ho scoperto che non viene gestito un caso particolare di lista nella conversione OOXML - IML, ovvero quando all'interno di una lista viene definita un'altra lista (inteso come lista indipendente, non come lista annidata). Viene replicato il contenuto della lista interna. Occorre quindi rivedere (almeno in parte) l'algoritmo per la generazione delle liste; CORRETTO (versione 1.1)

  • C' un problema con la funzione DocumentConverter.delFiles() nel caso sia presente nella cartella di esecuzione una o pi directory con il nome identico alle cartelle di un pacchetto OXML (word, docProps, _rels, customXml) e che contenga dei file estranei alla conversione: la funzione si inlooppa al tentativo di cancellare i file e le cartelle temporanee al termine della conversione;

  • Poich viene utilizzato nella conversione IML - OOXML un file degli stili predefinito viene perso l'attributo lingua nella trasformazione (sia quello standard del documento che quello dei frammenti di testo, viene sempre assegnata la lingua italiano). La soluzione a questo problema ricreare dinamicamente il file word/styles.xml (utilizzando un XML di supporto per la memorizzazione degli stili) modificando le propriet del tag w:styles/w:rPrDefault/w:rPrDefault/w:lang (per definire la lingua di default del documento) ed aggiungendo i tag w:rPr/w:lang nei tag w:r che dovranno possedere una lingua diversa da quella di default. Un altro problema relativo che il valore dell'attributo lingua di OpenXML siglalingua-siglaluogo, e in IML memorizzato solo il valore siglalingua;

Chiunque possa avere bisogno di chiarimenti e/o abbia bisogno di contattarmi per risolvere dei problemi la mia e-mail personale aquadalti@libero.it. Non fatevi scrupoli. wink

-- AlbertoQuadalti - 11 Jul 2007
to top

I Attachment sort Action Size Date Who Comment
SiConForMi_OXML.jpg manage 38.6 K 11 Jul 2007 - 15:16 AlbertoQuadalti Modello Si-ConForMi OXML
Architettura.jpg manage 163.2 K 11 Jul 2007 - 15:49 AlbertoQuadalti Architettura di Si-ConForMi OXML
Si-ConForMi_OXML_1.0.zip manage 72.1 K 11 Jul 2007 - 16:50 AlbertoQuadalti Si-ConForMi OXML versione 1.0
ConversionetraformatidocumentaliapertibasatisuXML.pdf manage 929.6 K 11 Jul 2007 - 17:03 AlbertoQuadalti La mia tesi
Si-ConForMi_OXML_1.1.zip manage 94.5 K 13 Jul 2007 - 12:25 AlbertoQuadalti Si-ConForMi OXML versione 1.1

You are here: Tesi > ArgomentiDiTesi > IsaWiki > SiConForMi

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Fabio's Wiki? Send feedback