Domanda

Ho un programma che utilizza XSL-FO (org.apache.fop.apps.Driver) per generare una stampa PDF da un file XML.

Sto lavorando sui fogli di stile (xsl) & amp; Sto cercando di semplificare il debug. Ho XML & amp; il file XSL, ora voglio solo che il mio editor mi mostri il PDF generato mentre sto lavorando sul file XSL.

Ho provato diversi editor e amp; hanno dato errori con cui il programma non sembra avere problemi.

sembra che il problema sia che l'editor si aspetta di vedere:

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value="" />

mentre l'XML effettivo generato dal programma è

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

Come vedi il vuoto vuoto attr_value manca chiaramente = " " - c'è un modo per rendere l'editor meno rigido? Quindi può generare il PDF proprio come fa il programma che ho?

È stato utile?

Soluzione

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

Quella riga non è valida come è stato menzionato in precedenza. Il programma che ritiene che vada bene probabilmente utilizza il proprio parser XML personalizzato che ignorerà questi attributi non validi. Mi fa dubitare delle qualità di programmazione delle persone che hanno creato quel programma. Mi sembra solo che stiano scrivendo questo XML come testo invece attraverso un meccanismo XML-DOM. Tuttavia, dovrebbe andare bene, ma sfortunatamente, il loro codice ha un bug.

La maggior parte degli editor, parser e trasformatori XML, se non tutti, convaliderà l'XML prima che venga elaborato. Quindi sfortunatamente non esiste una buona soluzione per risolvere questo problema all'interno del file XSLT. Utilizzando un RegEx, puoi rimuovere gli attributi non validi o renderli validi aggiungendo = " " a loro, ma non c'è modo di farlo prima che l'XSLT convaliderà l'XML.

Per risolvere questo problema, il programma deve essere modificato per generare un XML valido. Perché in questo momento, questo potrebbe essere considerato un bug molto serio. (A meno che il programma non utilizzi questo falso XML solo per scopi interni.)

Altri suggerimenti

L'XML con attr_value e no = non è valido Specifica W3C XML e quindi tutti gli strumenti XML dovrebbero lamentarsi. Quale strumento stai usando?

Ok, ho appena usato la ricerca di espressioni regolari & amp; sostituisci tutti i nomi degli attributi, se non terminano con = " " poi aggiungilo, ora sembra tutto ok ... zoppo, ma per il momento va bene per le mie esigenze

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top