Salve,
Lo avevo gia' annunciato diverso tempo fa'. Spesso serve poter leggere rapidamente una scheda di metadato. Poiche' vengono scambiate in XML leggerle non e' semplice. Soluzioni per renderle leggibili sono tipicamente quelle di caricarle in un sistema di catalogo. La quale procedura e' spesso complessa e comunque richiede di accedere a un catalogo disponibile. L'occasione mi si e' presentata quando mi e' stato chiesto di converitre un set di schede di metadato in XML in html. Anziche' caricarle su un mastodontico catalogo internet per poi riesportarle in HTML e comunque dover accettare una struttura del documento a parer mio inadatta per questo tipo di schede. Ho preferito svilupparmi uno script xslt che riproducesse un HTML che in una unica pagina presentasse l'informazionecome io ritenevo che andava presentata. Allafine e' venuto fuori questo simpatico script in linguaggio XSLT che consente di convertire una scheda di metadato in XML in HTML e leggerla con un normale browser. Il tutto client site. Ovvero senza richiedere l'accesso a un aggeggio server che carica la scheda e poi ne riesporta una versione rielaborata. Inizialmente ero partito supportanto i soli tags dell'editor Inspire del JRC. Poi, avendoci preso la mano e anche un po' per divertimento e un po' per sfida, visto che avevo preso la mano con il linguaggio XSLT (un linguaggio abbastanza cervellotico), ho spinto la compatibilita' anche a una serie di tags molto particolari. E tenendo presente la molteplicita' dei vari tags XML. Tra cui anche la parte del DataQuality compreso il Lineage e il ProcessStep e il Source Step. Parte che considero la piu' importante di una scheda di metadato. Per usarlo basta scaricarsi un programmino da riga di comando che si chiama xsltproc.exe (su windows) e con esso invocare lo script. Assieme allo script xslt ho messo a punto anche un semplice file batch per windows che consente trmaite l' xsltproc di convertire tutte le schede xml presenti in una cartella in analoghe schde html. Lo script batch contiene 4 variabili tramite le quali si imposta dove sono i binari, lo script xslt, la cartella in input delle schede xml e l'output in html. Alla fine quetse schede in HTML potra' leggersele o addirittura pubblicarle su internet tramite un semplice server web e puntarle anche da un servizio wms. Il tutto infatti e' pensato per aiutare anche un eventuale soggetto che deve pubblicare schede in html , ma non dispone di un sistema di catalogo o non e' in grado di gestirlo. Riducendo all'osso tutto il sistema. Ovvero alla sola conversione di un fle xml in un file html. Operazione che "stringi stringi" e' quella che serve. Infatti alla fine basta esporre su internet le due scehde in xml e in html e il piu' e' fatto. Trovate questo script xslt con procedura batch e anche con gli eseguibili per "eseguirlo " su una shell dos sotto windows al seguente percorso. https://github.com/aperi2007/xslt-mtd2html La licenza e' GPL 3.0 Lo ho messo su github in quanto e' una mia iniziativa in quanto mi serviva per convertire alcune schede di metadato da XML a HTML e non e' e non e' assolutamente un qualcosa di rilasciato da RT. Infine un piccolo chiarimento. Saluti e buona fortuna. -- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
Il 13/11/2015 00:29, Andrea Peri ha scritto:
> Trovate questo script xslt con procedura batch e anche con gli > eseguibili per "eseguirlo " su una shell dos sotto windows al seguente > percorso. > > https://github.com/aperi2007/xslt-mtd2html > > La licenza e' GPL 3.0 Oh che bella notizia! Grazie. Pensi che sarebbe utile integrarlo (anche) in QGIS, in modo da poter facilitare la strutturazione del file di config ed il lancio del comando, e dargli maggior visibilita'? Saluti. -- Paolo Cavallini - www.faunalia.eu QGIS & PostGIS courses: http://www.faunalia.eu/training.html _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
In reply to this post by Andrea Peri
On Fri, Nov 13, 2015 at 12:29:32AM +0100, Andrea Peri wrote:
> https://github.com/aperi2007/xslt-mtd2html > > La licenza e' GPL 3.0 Grazie ! Ho dato un'occhiata e ho alcune osservazioni (se sono benvenute): 1. I file binari non dovrebbero essere sotto controllo di revisione (dovrai riscrivere la storia per rimuoverli del tutto) 2. E' raccomandabile includere un header in ogni file coperto dalla licenza che include il copyright holder e una menzione breve di quale sia la licenza applicabile (immagino tu voglia consentirne la distribuzione anche con eventuali future versioni della GPL successive alla 3.0) -- vedi http://www.gnu.org/licenses/gpl-howto.it.html 3. Sarebbe utile includere nel README informazioni circa le dipendenze (HINT: sotto debian e derivati la xsltproc si installa con `apt-get install xsltproc`) l'uso e la homepage ufficiale (con git possono esserci molti mirror, meglio rendere chiaro quale sia quello ufficiale) Felice condivisione ! --strk; _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
In reply to this post by pcav
Non lo so . Non rientrava tra i miei obiettivi.
A me serviva una soluzione per convertire facilmente N-mila schede di metadato in formato xml in una forma intelleggibile. E questo me le converte tutte in pochi secondi. Su qgis potresti fare una cosa pedissequa che con svariati click converti 1 singola scheda. Ma questo e' nato per convertire ad esempio 1000 schede xml in 1000 schede html in pochi secondi. Dal mio punto di vista una interfaccia grafica e' una sovrastruttura che non serve a niente. A me era stato chiesto di mettere una serie di schede in formato HTML leggibile. Fati due conti e preso atto che niente vi era a giro che producesse schede facili da comprendere. E i pochi softwares disponibili erano tutti rivolti all'editing e percio' sezionavano la scheda in pagine distinte, anziche' proporre tutto in unaunica pagina. Unico che propone tutto insieme e' GeoNetwork, il quale pero' costruisce una pagina che francamente e' formattata in una maniera un po' assurda ai miei occhi. Per cui ho deciso di investire un po' del mio tempo libero per mettere in piedi questo codice di traduzione e ho scelto l' xslt perche' era il linguaggio piu' ideale per questa problematica. Sebbene l' xslt abbia dei vincoli che lo rendono poco compensibile a chi e' avvezzo ai linguaggi procedurali. Basti dire che in xslt 1.0 e impossibile fare un conteggio sequenziale 1,2,3,4,5. Ragion per cui anche se avrei voluto metterci un conteggio progressivo alle righe non e' stato possibile implementarlo senza perdere la compatibilita' con l' xslt 1.0 che era un "must" per me. Ovviamente ho preso delle scelte dal punto di vista della formattazione del html. Scelte che sono state dettate da alcuni colloqui con colleghi che avrebbero poi utilizzato il risultato e dettate anche dal mio gradodi conoscenza del metadato e tenendo conto che il metadato con la sua molteplicita' su molte informazioni potrebbe avere delle ripetizioni che ovviamente vanno opportunamente gestite. Quindi alla fine sono giunto a questa versione di codice. Il codice e' a disposizione con licenza GPL v3. Chiunque vuole usarlo e' libero di farlo nel rispetto della licenza. L'avvertenza e' che il codice XSLT e' ostico veramente e anche incomprensibile se non si e' padroni della sua logica di ragionamento. Anche per questo ci ho tenuto a metterci dentro piu' roba possibile fiche' ero fresco su tale linguaggio. Una avvertenza: poiche' ho usato il codice per fare la conversione per uso intenro a dei miei colleghi,ho dentro il rimando al logo di RT. Ho ritenuto utile mantenerlo per dare un esmepio di come si inserisce un logo dentro il codice XSLT (operazione non banale per chi e' alle prime armi). In maniera che se qualcuno vuole cambiarlo con il logo di un altro ente o associazione, puo' farlo facilmente cambiarno l'indirizzo della url riferita. A. Il 13 novembre 2015 07:57, Paolo Cavallini <[hidden email]> ha scritto: > Il 13/11/2015 00:29, Andrea Peri ha scritto: > >> Trovate questo script xslt con procedura batch e anche con gli >> eseguibili per "eseguirlo " su una shell dos sotto windows al seguente >> percorso. >> >> https://github.com/aperi2007/xslt-mtd2html >> >> La licenza e' GPL 3.0 > > Oh che bella notizia! Grazie. > Pensi che sarebbe utile integrarlo (anche) in QGIS, in modo da poter > facilitare la strutturazione del file di config ed il lancio del > comando, e dargli maggior visibilita'? > Saluti. > -- > Paolo Cavallini - www.faunalia.eu > QGIS & PostGIS courses: http://www.faunalia.eu/training.html > _______________________________________________ > [hidden email] > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss > Questa e' una lista di discussione pubblica aperta a tutti. > I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. > 786 iscritti al 30.9.2015 -- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
On Fri, Nov 13, 2015 at 08:34:41AM +0100, Andrea Peri wrote:
> Su qgis potresti fare una cosa pedissequa che con svariati click > converti 1 singola scheda. LOL -- Aperoll e' tornato :) --strk; _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
In reply to this post by Sandro Santilli
Come faccio a mettere l'xsltproc a tenerlo dentro gitbub, ma fuori
dalla parte soggetta a controllo di revisione ? Il mio obiettivo e' rendere facile il suo impiego. Tenuto conto che per l'xsltproc richede 4 dll per funzionare e che non sono tutte insieme ma vanno reperite ai 4 angoli del mondo, ho ritenuto cosa utile per chi lo volesse usare di metterle tutte a disposizione assieme. Cosi' e pronto all'uso. D'altronde sapevo bene che non centrano niente con il codice. Ma quale altra soluzione avrei per pacchettizzzare ? Se mettessi il solo codice xslt senza questi eseguibili. L'utente normale (che e' il mio target) non riuscirebbe a usarlo. A. Il 13 novembre 2015 08:26, Sandro Santilli <[hidden email]> ha scritto: > On Fri, Nov 13, 2015 at 12:29:32AM +0100, Andrea Peri wrote: > >> https://github.com/aperi2007/xslt-mtd2html >> >> La licenza e' GPL 3.0 > > Grazie ! > Ho dato un'occhiata e ho alcune osservazioni (se sono benvenute): > > 1. I file binari non dovrebbero essere sotto controllo di revisione > (dovrai riscrivere la storia per rimuoverli del tutto) > > 2. E' raccomandabile includere un header in ogni file coperto dalla > licenza che include il copyright holder e una menzione breve di > quale sia la licenza applicabile (immagino tu voglia consentirne > la distribuzione anche con eventuali future versioni della GPL > successive alla 3.0) -- vedi > http://www.gnu.org/licenses/gpl-howto.it.html > > 3. Sarebbe utile includere nel README informazioni circa le > dipendenze (HINT: sotto debian e derivati la xsltproc si installa con > `apt-get install xsltproc`) l'uso e la homepage ufficiale > (con git possono esserci molti mirror, meglio rendere chiaro quale > sia quello ufficiale) > > Felice condivisione ! > > --strk; -- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
On Fri, Nov 13, 2015 at 08:39:19AM +0100, Andrea Peri wrote:
> Come faccio a mettere l'xsltproc a tenerlo dentro gitbub, ma fuori > dalla parte soggetta a controllo di revisione ? Non so se github supporti il concetto di "distribuzione binaria". Tra l'altro distribuendo xslproc come eseguibile senza includere le informazioni circa il suo copyright e la sua licenza non e' consentito (licenza MIT, http://opensource.org/licenses/mit-license.html) > Il mio obiettivo e' rendere facile il suo impiego. Intendi la sua installazione, immagino ? Non e' quello lo scopo di un sistema di controllo di revisione. C'e' da considerare soprattutto che ad una singola versione del codice possono corrispondere diversi "pacchetti installabili", a seconda del sistema su cui si vuole impiegare il codice finale. > Tenuto conto che per l'xsltproc richede 4 dll per funzionare e che non > sono tutte insieme ma vanno reperite ai 4 angoli del mondo, ho > ritenuto cosa utile per chi lo volesse usare di metterle tutte a > disposizione assieme. > Cosi' e pronto all'uso. E' pronto all'uso solo per quelli che hanno un sistema operativo compatibile con le .dll e gli .exe che stai distribuendo. Dovresti prevedere la possibilita' di avere diversi pacchetti binari, assicurandoti ovviamente di rispettare la licenza di quel che distribuisci. > D'altronde sapevo bene che non centrano niente con il codice. > Ma quale altra soluzione avrei per pacchettizzzare ? Usare un'altro servizio, solo per il download. Alcuni servizi di "code hosting" hanno un'area dedicata, vedi la colonna "Release Binaries" qui: https://en.wikipedia.org/wiki/Comparison_of_source_code_hosting_facilities#Features Tra l'altro leggo in quella tabella che in effetti github la supporta, ma non so esattamente in che forma la intendano (potrebbe essere una trappola ! :) > Se mettessi il solo codice xslt senza questi eseguibili. > L'utente normale (che e' il mio target) non riuscirebbe a usarlo. Io credo di essere normale ma con quell'.exe e quelle .dll non saprei che farmene :) --strk; _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
Certo.
Il mio obittivo era windows, mica linux. Io sul mio portatile ho windows, mica linux. Non ho la piu' pallida idea se xsltproc esista su linux, o se esista qualcosa altro che lo sostituisce. Non ho obiettivi di supportare a 360gradi tutto lo scibile informatico esistente. I sistemi di download sono tutti a pagamento. Eventualmente potrei metterli su google che fornisce una area di download gratuito e da li' farli scaricare. Pero' non so se anche Google richiede un tipo di licenza forse incompatibile. Oppure li metto su dropbox in modalit'a condivisione e da li' li faccio scaricare. Stasera ci penso e modifico la cosa. Nel frattempo ho inserito il disclaimer nel codice xslt. Come vedrai non e' in testa. Nei file xslt la prima riga e' obbligata quella che vedi altrimenti si rischia l'incompatibilita' con qualche parser. A. Il 13 novembre 2015 09:00, Sandro Santilli <[hidden email]> ha scritto: > On Fri, Nov 13, 2015 at 08:39:19AM +0100, Andrea Peri wrote: >> Come faccio a mettere l'xsltproc a tenerlo dentro gitbub, ma fuori >> dalla parte soggetta a controllo di revisione ? > > Non so se github supporti il concetto di "distribuzione binaria". > Tra l'altro distribuendo xslproc come eseguibile senza includere > le informazioni circa il suo copyright e la sua licenza non e' > consentito (licenza MIT, http://opensource.org/licenses/mit-license.html) > >> Il mio obiettivo e' rendere facile il suo impiego. > > Intendi la sua installazione, immagino ? > Non e' quello lo scopo di un sistema di controllo di revisione. > > C'e' da considerare soprattutto che ad una singola versione del codice > possono corrispondere diversi "pacchetti installabili", a seconda del > sistema su cui si vuole impiegare il codice finale. > >> Tenuto conto che per l'xsltproc richede 4 dll per funzionare e che non >> sono tutte insieme ma vanno reperite ai 4 angoli del mondo, ho >> ritenuto cosa utile per chi lo volesse usare di metterle tutte a >> disposizione assieme. >> Cosi' e pronto all'uso. > > E' pronto all'uso solo per quelli che hanno un sistema operativo > compatibile con le .dll e gli .exe che stai distribuendo. > > Dovresti prevedere la possibilita' di avere diversi pacchetti binari, > assicurandoti ovviamente di rispettare la licenza di quel che > distribuisci. > >> D'altronde sapevo bene che non centrano niente con il codice. >> Ma quale altra soluzione avrei per pacchettizzzare ? > > Usare un'altro servizio, solo per il download. > Alcuni servizi di "code hosting" hanno un'area dedicata, vedi la > colonna "Release Binaries" qui: > https://en.wikipedia.org/wiki/Comparison_of_source_code_hosting_facilities#Features > Tra l'altro leggo in quella tabella che in effetti github la > supporta, ma non so esattamente in che forma la intendano (potrebbe > essere una trappola ! :) > >> Se mettessi il solo codice xslt senza questi eseguibili. >> L'utente normale (che e' il mio target) non riuscirebbe a usarlo. > > Io credo di essere normale ma con quell'.exe e quelle .dll non > saprei che farmene :) > > --strk; -- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
On Fri, Nov 13, 2015 at 09:18:06AM +0100, Andrea Peri wrote:
> Non ho la piu' pallida idea se xsltproc esista su linux, o se esista > qualcosa altro che lo sostituisce. Te l'ho scritto nella prima mail che installare xsltproc su linux si fa con un semplice apt-get :) Considera che i commenti associati alle funzioni PostGIS e il "garden test" sono generati con xslproc (grazie a Regina). > Non ho obiettivi di supportare a 360gradi tutto lo scibile informatico > esistente. Non e' richiesto. > I sistemi di download sono tutti a pagamento. Non mi risulta. > Eventualmente potrei metterli su google che fornisce una area di > download gratuito e da li' farli scaricare. ... > Oppure li metto su dropbox in modalit'a condivisione e da li' li > faccio scaricare. Appunto :) > Nel frattempo ho inserito il disclaimer nel codice xslt. Grande ! > Come vedrai non e' in testa. > Nei file xslt la prima riga e' obbligata quella che vedi altrimenti si > rischia l'incompatibilita' con qualche parser. Pure la seconda ? https://github.com/aperi2007/xslt-mtd2html/blob/8069e22324035eaa55354300e91340cda9cac75c/procedura/iso19115-inspire-editor.xsl --strk; _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
In reply to this post by Andrea Peri
Molto interessante, grazie Andrea per la condivisione! Ciao, Matteo _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
Salve a tutti.
Giustamente Santilli mi ha fatot notare alcuni errori che avevo fatto con la condivisione mettendoci dentor la roba xslt che non centra niente e pesa ben 40mb rispetto al codice. L'unico modo per riuscire a risolvere per bene la questione e' droppare via tutto quanto. Cosa che ho appena fatto. Poi co attenzione nel fine settmana procedero' a ripristinare solo il pezzo essenziale , oppure a trovare una altra location piu' adeguata. Quindi per ora il tutto e' di nuovo offline, faccio sapere appena sara' nuovamente disponibile da qualche parte. Saluti e scusate per ora. Il 13 novembre 2015 09:34, Matteo De Stefano <[hidden email]> ha scritto: > Molto interessante, > > grazie Andrea per la condivisione! > > Ciao, > > Matteo -- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
In reply to this post by Andrea Peri
Perché non usare direttamente il processore xslt del browser?
Non sono riuscito a vedere il tuo codice in github, ma se si tratta di un xslt e in particolare in versione 1, penso sia la strategia più "light". Con quasi tutti i browser, tra l'altro, se un documento xml specifica uno "stylesheet" (ossia: un documento xslt) il contenuto viene automaticamente convertito con il foglio di stile xsl. La direttiva va all'inizio del documento xml, per intenderci dopo la prima riga <?xml version="1.0" encoding="UTF-8"?> ed è: <?xml-stylesheet href="md2html.xsl" type="text/xsl"?> A questo punto si potrebbe anche fare a meno di salvare l'html prodotto e basterebbe avere una copia dei file originali in xml con questo preambolo. Basta in tal caso lavorare con un processore di file di testo (penso a awk, per esempio). In alternativa si può accedere al motore xslt del browser via Javascript. P.S. per la numerazione delle righe io penserei alla funzione position() che è compatibile con xslt 1 e che puoi usare sia se applichi dei template (apply-template) o se realizzi dei cicli su delle liste di nodi (for-each).
p
|
Ciao ,
apprezzo il contributo. La strategia del javascript e del parsing direttamente nella pagina del browser e' cosa nota. Se cerchi in mezzo alle slides, la troverai da me citata nella mia presentazione di qualche anno fa' a Bologna (convegno gfoss). Questo solo per dirti che la conoscevo e in partenza avevo pure ipotizzato di andare per quella strada. Ma poi la ho esclusa perche' era troppo complicata per un utente normale. Io cercavo roba ancora piu' semplice e a massimo risultato e compatibilita'. Se ti interessa tale strategia, in tale slides troverai una citazione e dei links interesanti. Infatti nella nostra infrastruttura ioho impiegato la strategia del parsing al volo del XML su browser in javascript che te citi. Per generare una pagina html di risposta a partire da una query syu un server WFS che come saprai risponde in GML che e' a tutti gli effetti un XML e quindi parserizzabile con un processore xslt. Parserizzare un GML e' un po' difficile per tutti i namespaces che ha, pero' alla fine deisalmi e' solo una lista di valori in fila indiana. Uno dei quali e' una geomatria. QUindi abbastanza semplice da processare in xslt e riportare in forma tabellare (in html). Ma soprattutto un GML e' sempre uguale a se stesso. Invece la scheda xml di metadato e' tutta una altra storia. Puo' non essere mai uguale, a seconda della sua provenienza e prevede tantissimi tags in piu', tra loro anche nidificati e anche con svariata molteplicita' e a volte cisono o non ci sono. Un bel puzzle in cui districarsi con un xslt. NOn ho comunque supportato il 100% dei possibili tags diuna scheda dimetadato, ma son sceso abbastanza in profondita, studiandomi sia le schede che avevano noi (tra le piu' complicate), sia alcune riprese da RNDT e anche alcune generate dall'editor Inspire el JRC. E in alcuni casi ho pure customizzato l'xml per inserirci dei tags che volevo supportare per avere un xslt che fosse in grado di masticare quanto piu'possibile tutti i tags piu' che immaginavo avrebbero mai potuto comparire in una scheda compilata che ci poteva ritornare. In merito alla funzione "position": Certamente te saprai che la funzione position non e' un contatore, ma riporta invece la posizione del tag. Il che puo' coincidere con il valore di un contatore se i tags del xml sono in fila indiana uno dopo l'altro e tutti al medesimo livello. Ma la scheda XML di una scheda di metadato puo' non essere cosi'. Anzi non lo e' quasi mai. A meno che uno non compili solo quei 4-5 valori che sono nel primo livello e che pero' sono sempre uguali. Per semplificare il discorso per i non addetti: Se il file XML e' semplice il comando position riporterebbe: 2, 3, 4, 5 e quindi rappresentando un progressivopoteva anche andare bene. Ma poi in qualche caso , (quasi sempre in realta0) salta fuori una qualche nifdificazione che fa saltare la posizione del tag interferendo nel valore del progressivo. Per intendersi in una scheda di metadato il position ritornerebbe qualcosa di questo genere: 2, 6, 13, 34, 45 Certamente vi e' la progressivita' , ma non mi piaceva mostrare un progressivo dopo il 2 mostrava il 6 e non il 3. : Per cui ho soprasseduto all'uso del position. Un vero progressivo si riesce ad avere con l' xslt 20 che purtroppo non e' molto diffuso e a quel che so' non esiste un processore in forma di eseguibile su piataforma windows ps: Il Java lo avevo escluso a priori per tutta una serie di altre considerazioni. A. Il 13 novembre 2015 17:35, ptagliolato <[hidden email]> ha scritto: > Perché non usare direttamente il processore xslt del browser? > Non sono riuscito a vedere il tuo codice in github, ma se si tratta di un > xslt e in particolare in versione 1, penso sia la strategia più "light". > Con quasi tutti i browser, tra l'altro, se un documento xml specifica uno > "stylesheet" (ossia: un documento xslt) il contenuto viene automaticamente > convertito con il foglio di stile xsl. > La direttiva va all'inizio del documento xml, per intenderci dopo la prima > riga > <?xml version="1.0" encoding="UTF-8"?> > ed è: > <?xml-stylesheet href="md2html.xsl" type="text/xsl"?> > > A questo punto si potrebbe anche fare a meno di salvare l'html prodotto e > basterebbe avere una copia dei file originali in xml con questo preambolo. > Basta in tal caso lavorare con un processore di file di testo (penso a awk, > per esempio). > > In alternativa si può accedere al motore xslt del browser via Javascript. > > P.S. per la numerazione delle righe io penserei alla funzione position() che > è compatibile con xslt 1 e che puoi usare sia se applichi dei template > (apply-template) o se realizzi dei cicli su delle liste di nodi (for-each). > > > > -- > View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Procedura-XSLT-per-convertire-una-scheda-metadatao-XML-in-HTML-tp7594995p7595038.html > Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com. > _______________________________________________ > [hidden email] > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss > Questa e' una lista di discussione pubblica aperta a tutti. > I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. > 786 iscritti al 30.9.2015 -- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
Non lo avevo pensato.
Anzi avevo apprezzato il contributo. Forse sono stato un po' troppo sbrigativo nella risposta e questo puo' averti ingannato. A questo proposito se ti interessano le trasformazioni xslt, puo dare una occhiata alle mie trasformazioni xslt per la decodifica del GML. La trovi a questo link. Il codice xslt e' progettato per decodificare il GML generato dal server wfs TinyOWS. Purtroppo da server wfs a server wf ci sono piccole differenze (quantomeno nei namespaces) e all'epoca non ero sufficientemente skilled da riuscire a fare una trasformata xslt a prova di server wfs. Di seguito te ne elenco alcune: Questa invoca l'elenco delle strade di un comune (applicando un filtro al volo) dal server wfs e lo decodifica con apposita trasformazione xslt. E' interessante anche perche' fa fare l filtro al server wfs anziche' prendersi l'intero dataset e filtrarlo localmente dal javascript. Il che aumenta notevolmente le performance del sistema. http://www502.regione.toscana.it/geoscopio/servizi/wfs/html/elenco_strade.html?com=047001 Questa invece decodifica lo strato fogli catastali(onde evitare vane speranze, la geometria e' il bbox) http://www502.regione.toscana.it/geoscopio/servizi/wfs/html/elenco_foglicat.html?com=047001 Questa invece elenca i fiumi che ricadono nel comune. http://www502.regione.toscana.it/geoscopio/servizi/wfs/html/elenco_fiumi.html?com=047001 La lista completa la trovi qui. http://www502.regione.toscana.it/geoscopio/servizi/wfs/html/comuni.html Il codice xslt della trasformazione della scheda metadato lo rimettero' in linea penso domani o al massimo il giorno dopo. Saluti, A. Il 13 novembre 2015 21:19, P <[hidden email]> ha scritto: > Ciao Andrea, non volevo essere polemico o saccente,se lo sono sembrato ti > chiedo veramente scusa... > Sono molto interessato al tuo progetto mi sembra estremamente interessante e > da un po' di tempo penso a qualcosa di analogo in ambito SWE. > Ho cercato di accedere al codice ma non era disponibile. > Lo guarderò volentieri appena lo rimetterai in rete. Come scrivevo in lista > partivo dall'ipotesi che si trattasse di un foglio xslt che realizzasse la > trasformazione da xml a html e che cercassi un processore xslt da includere > nel progetto. > Penso che in tal caso per un utente la soluzione puro xml orlato con il > richiamo della trasformazione sarebbe stata una buona soluzione (di certo > non complicata per l'utente finale che semplicemente avrebbe aperto col > browser quella che per lui sarebbe stata una comune pagina "web"). Ma mi > sembra di capire che non sia questo lo scenario. Mi mancano degli elementi > senza il codice. > Circa la funzione position quello che dici è assolutamente vero e ci ho > sbattuto la testa diverse volte,d'altra parte spesso si può piegare il > codice per esempio selezionando in modo esplicito con gli xpath i nodi > "giusti" da cui partire per il conteggio,nei for-each o negli > apply-templates. Per lo meno per me è stato utile farlo. > > > > > _________________________________ > Paolo Tagliolato, Ph.D. Computer Science > Remote Sensing Dep., IREA-CNR > Istituto di Rilevamento Elettromagnetico dell’Ambiente > Consiglio Nazionale delle Ricerche > Via Bassini, 15, 20133 Milano, Italy > [hidden email] > [hidden email] > Questa e' una lista di discussione pubblica aperta a tutti. > > I messaggi di questa lista non hanno relazione diretta con le posizioni > dell'Associazione GFOSS.it. > > 786 iscritti al 30.9.2015 > > > > > -- > ----------------- > Andrea Peri > . . . . . . . . . > qwerty àèìòù > ----------------- -- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 786 iscritti al 30.9.2015 |
Free forum by Nabble | Edit this page |