Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
Marathon: arriva il Fortnite hardcore
Marathon: arriva il Fortnite hardcore
Marathon è il titolo multiplayer competitivo del momento. Ecco quali sono le caratteristiche di gioco principali, insieme alle nostre prime considerazioni dopo qualche "run" nell'extraction shooter di Bungie
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-05-2007, 10:28   #1
Dostybear
Member
 
Iscritto dal: Oct 2006
Messaggi: 197
[JAVA] Parser DTD

Ciao!
Devo realizzare in Java una classe che possa analizzare un file contenente la descrizione di un DTD xml, e che quindi riesca a identificare i nomi di elementi e attributi per poi inserirli in una struttura già definita in un'altra classe. Il problema è che non so da dove iniziare per fare il parsing del documento.
Ogni suggerimento è ben accolto grazie in anticipo!
Dostybear è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 08:55   #2
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
beh....diciamo che stai citando circa un oceano di concetti...prima di tutto costruire un parser non è una cosa semplicissimissima. Hai detto che il lunguaggio usato è xml, che è un linguaggio libero dal contesto definito da una grammatica LR(k), cioè a derivazioni right-most con k simboli di lookahead...
magari questi concetti non ti serviranno, però per lo meno dovresti sapere che lo scopo di un parser è quello di costruire un albero di parsing, cioè un albero che sia in grado di descrivere la struttura sintattica di ogni frase del linguaggio. Per fare ciò con ogni probabilità dovrai costruirti un automa a stati finiti deterministico in grado di riconoscere ogni stringa che fa parte del linguaggio...
dovresti essere più preciso, e dirmi magari quali siano le possibili limitazioni del progetto che devi fare, in modo da evitare di farti perdere tempo su concetti che non ti servono...

intanto magari ti invio questo link

http://www.latoserver.it/java/parsing-XML/

spero possa esserti utile ai fini di quello che (penso) tu debba fare
__________________

Ultima modifica di akyra : 02-05-2007 alle 09:04.
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 10:26   #3
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
spè..
la devi realizzare tu per forza per qualche progetto dell'univ o puoi anke usare librerie già esistenti..
perchè di librerie per la validazione degli xml con una dtd ce ne stanno a bizzeffe
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 02-05-2007, 16:21   #4
Dostybear
Member
 
Iscritto dal: Oct 2006
Messaggi: 197
Si, forse sono stato un pò troppo vago
Allora, innanzitutto devo realizzarlo io senza utilizzare librerie esterne; lo scopo non è quello della validazione dell'xml, ma più semplicemente deve riuscire a identificare i nomi di elementi ed attributi e le relazioni tra i diversi elementi. Al link avevo già dato un'occhiata, ma nel mio caso dovrei analizzare il contenuto di un dtd, non di un documento xml.
Per fare un esempio dal dtd seguente
Codice:
<!ELEMENT impiegati (impiegato)*>
<!ELEMENT impiegato (nome, email, url?)>
<!ATTLIST impiegato id CDATA #REQUIRED>
<!ELEMENT nome (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT url EMPTY>
<!ATTLIST url href CDATA #REQUIRED>
a me interessa sapere che ci sono 4 elementi, con i loro nomi; che impiegati è composto da impiegato che a sua volta è composto da nome, email e url; inoltre che url ha un attributo href.
Dostybear è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2007, 08:11   #5
Dostybear
Member
 
Iscritto dal: Oct 2006
Messaggi: 197
Up!
Dostybear è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2007, 09:13   #6
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
Quote:
Originariamente inviato da Dostybear Guarda i messaggi
Si, forse sono stato un pò troppo vago
Allora, innanzitutto devo realizzarlo io senza utilizzare librerie esterne; lo scopo non è quello della validazione dell'xml, ma più semplicemente deve riuscire a identificare i nomi di elementi ed attributi e le relazioni tra i diversi elementi. Al link avevo già dato un'occhiata, ma nel mio caso dovrei analizzare il contenuto di un dtd, non di un documento xml.
Per fare un esempio dal dtd seguente
Codice:
<!ELEMENT impiegati (impiegato)*>
<!ELEMENT impiegato (nome, email, url?)>
<!ATTLIST impiegato id CDATA #REQUIRED>
<!ELEMENT nome (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT url EMPTY>
<!ATTLIST url href CDATA #REQUIRED>
a me interessa sapere che ci sono 4 elementi, con i loro nomi; che impiegati è composto da impiegato che a sua volta è composto da nome, email e url; inoltre che url ha un attributo href.
quello che devi costruirti è un automa a stati finiti deterministico che faccia l'analisi lessicale del DTD....se non hai idea di cosa stia dicendo devi prima documentarti su questo....però mi sembra molto strano che tu debba costruirti un algoritmo del genere senza avere nozioni di questo tipo...
__________________
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2007, 09:20   #7
Dostybear
Member
 
Iscritto dal: Oct 2006
Messaggi: 197
Nono, so di cosa stai parlando. Però pensavo che, visto che lo comunque scopo è piuttosto semplice (non devo certo scrivere un compilatore ), ci potesse essere qualche modo più veloce per realizzarlo.
Ora ho provato a buttar giù una classe per dividere in token il file di testo (il dtd) in input.
Dostybear è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2007, 09:50   #8
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
magari puoi evitare di scrivere un analizzatore lessicale complicato se fai delle ipotesi molto forti sul DTD che devi analizzare....ma devono essere proprio forti, e quello che ne uscirebbe sarebbe abbastanza grezzo e poco dinamico...
ad esempio se ipotizzi che dopo "<!ELEMENT" ci sia uno spazio vuoto e il nome dell'elemento, allora puoi usare le funzioni sulle stringhe che tagliano/cercano sottostringhe all'interno di altre stringhe...così, ad esempio ti verrebbe un codice del tipo:

se la riga letta inizia per "<!ELEMENT" allora taglia "<!ELEMENT" dalla stringa, e memorizza la stringa successiva racchiusa da due spazi vuoti (il nome dell'elemento)
quindi trova gli eventuali attributi tra parentesi, divisi da virgole

questo pseudo-ridicolo-codice dovrebbe renderti l'idea...
__________________
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2007, 11:16   #9
Dostybear
Member
 
Iscritto dal: Oct 2006
Messaggi: 197
Inizialmente pensavo proprio a una soluzione del genere...ora mi hai messo qualche dubbio
Ma per costruire un analizzatore lessicale non dovrei comunque basarmi sul riconoscimento delle stringhe?
Dostybear è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2007, 14:50   #10
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
beh ma quello che ho scritto io non è un abbozzo di analizzatore lessicale, è più che altro una manipolatore di stringhe.
Quello che intendevo dire io è che, se devi costruirti l'analizzatore lessicale, allora devi considerare TUTTI i costrutti possibili del linguaggio e procedere di conseguenza: leggere un carattere alla volta e prendere le relative decisioni

hai letto "<", allora portati in un certo stato che si aspetta come prossimo carattere un "!", quindi leggi sto benedetto "!", se poi arriverà un "E" cambia lo stato e passa ad uno specifico che riconosce la stringa "ELEMENT", se invece arriva "A" passa ad uno stato in grado di riconoscere "ATTLIST"....e così via

come puoi capire questo è molto più prolisso e complicato in quanto devi costruire l'analizzatore lessicale, in modo che riconosca tutti i possibili costrutti del DTD....ad esempio se dopo aver letto "<!" compare una "U" inaspettata, l'analizzatore deve essere in grado di eseguire un azione...magari notificando l'errore di sintassi...

nell'altro modo invece fai delle ipotesi forti sul DTD che vai ad analizzare, cioè ipotizzi che gli elementi "<!ELEMENT" siano SEMPRE seguiti da uno spazio vuoto a cui segue l'identificatore cercato...ma se ti capita un DTD che non rispetta questa ipotesi, naturalmente il programma non funzionerà....hai capito?
__________________
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 04-05-2007, 15:29   #11
Dostybear
Member
 
Iscritto dal: Oct 2006
Messaggi: 197
Si, sei stato chiarissimo.
In effetti non dovrebbe importarmi molto che il dtd sia scritto come si deve, cioè posso presumere che lo sia, e quindi fare tutte le manipolazioni necessarie di conseguenza.
Ti ringrazio per la pazienza
Dostybear è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Senza formazione ai dipendenti l'IA non ...
Google rende disponibile l'opzione per i...
Oracle licenzia migliaia di persone con ...
Il semaforo bianco sta arrivando: cos'è,...
FRITZ!Repeater 2700 disponibile su Amazo...
Xiaomi TV A Pro: QLED 4K da 65'' con Goo...
Jack Dorsey vuole abolire i manager: 'L'...
Dreame Z10: scopa elettrica senza fili p...
Kingston IronKey Keypad 200C: chiavetta ...
Echo ed Echo Show in offerta: dagli spea...
PlayStation 5 Pro costa troppo? Quel pre...
TIM e Galaxy S26: arriva il trasferiment...
La risposta all'invasione degli agenti I...
Fire TV Stick: tutta la gamma Amazon in ...
ChatGPT arriva su CarPlay: OpenAI introd...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v