V NET - Validazione xml con dtd

venerdì 01 febbraio 2008 - 16.43

brillant Profilo | Newbie

Ciao a tutti, immagino che l'argomento sia già stato trattato
ma forse mi sono perso qualcosa.

Scenario:
Ricevo tramite una connessione un buffer di memoria con una serie di tracciati xml.
Devo validarli ed inserire i dati in db.

Soluzione Teorica:
1) individuo la tipologia del messaggio
2) Identifico il dtd da utilizzare
3) Valido il messaggio
4a) Se è validato -> ins nel db
4b) Se non è validato -> Errore.

Il mio problema è validare un messaggio che non contiene le coordinate del dtd al suo interno. Ad esempio sto cercando una function del tipo

"private function validaXmlDtd( XmlFile as string , DtdFile as string ) as boolean"

Partendo dal presupposto di avere già individuato la tipologia del tracciato e quindi averlo associato al dtd corretto.


Ad oggi ho trovato il codice per valorizzare un file con l'indicazione del dtd
(<!DOCTYPE TipologiaTracciato SYSTEM "DtdFile.dtd">)

[CUT]
myXmlTextReader = New XmlTextReader(txtXml.Text)
myXmlValidatingReader = New XmlValidatingReader(myXmlTextReader)
myXmlValidatingReader.ValidationType = ValidationType.DTD
ValidateMessage()

[CUT]

La sub ValidateMessage è definità così:

Private Sub ValidateMessage()

' Set the validation event handler
Dim valdel As ValidationEventHandler = New ValidationEventHandler(AddressOf ValidationEvent)

AddHandler myXmlValidatingReader.ValidationEventHandler, valdel

' Read XML data
While myXmlValidatingReader.Read()
End While

Dim s As String
If (success = True) Then
s = "riuscita"
Else
s = "non riuscita"
End If

.....
[CUT]

Cerco un qualcosa per validare un file senza (<!DOCTYPE TipologiaTracciato SYSTEM "DtdFile.dtd">)

Grazie a tutti
ilbrilli
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5