Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C#] Metodo per validare un xml tramite DTD

    Salve,
    io ho un xml di configurazione, all'interno del quale ho già richiamato un DTD che ne definisce la giusta grammatica, e che quindi se editato con VS o altri editor mi permette di usare l'intellisense per scriverlo, e me ne vengono segnalati eventuali errori.
    Quello che voglio fare adesso però è includere nel codice un controllo sulla validità dell'xml prima di leggerlo e configurare il mio programma.
    L'ideale sarebbe una classe che mi vada a leggere l'xml, lo confronti con la grammatica descritta nel dtd, e mi informi se l'xml è quindi ben formato e se rispetta la grammatica, od in caso di errori mi segnali che errori sono.

    Esiste una cosa simile?

    Grazie a tutti.

    Ciao

  2. #2
    Ho risolto.
    Anzi, a dire il vero ho risolto due volte .
    Ho trovato la classe XmlValidatingReader, ed in particolare questa guida veramente chiara:

    http://support.microsoft.com/kb/307379

    Ma prima di trovare tutto questo mi sono messo e ho scritto io un metodo che leggesse nodo per nodo, attributo per attributo, valore per valore, e lo confrontasse con la sintassi che serve a me dicendomi se l'xml è valido per quello che mi serve oppure no.
    Il vantaggio di questo metodo è che non mi ritorna solo true se il documento è corretto e false se il documento non è corretto, ma mi ritorna un intero che interpretato mi da' maggiori informazioni sull'errore. Inoltre ovviamente funziona anche non in presenza di un DTD che definisca la sintassi.

    Gli svantaggi, oltre alla faticaccia che ho fatto per scriverlo, sono più o meno gli stessi... funziona SOLO con quella sintassi, in caso volessi cambiare il nome di uno dei nodi, o aggiungere un attributo, dovrei mettere di nuovo mano al codice, non basterebbe cambiare il DTD.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.