Validazione XMl con file XSD

lunedì 14 novembre 2005 - 09.53

erik77 Profilo | Senior Member

Ciao ragazzi,
quale è il modo migliore per validare una stringa XML tramite un file XSD?

grazie
ciaoo

Brainkiller Profilo | Guru

>Ciao ragazzi,
>quale è il modo migliore per validare una stringa XML tramite
> un file XSD?

Che io sappia di solito si validano documenti XML tramite XSD non una singola stringa. Lo puoi fare con la classe XmlValidatingReader.
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

erik77 Profilo | Senior Member

grazie infatti ho trovato questa routine :
Private Function ValidateXML(ByVal XSD_Path As String, _
ByVal sXML As String, _
ByRef sMsg As String) As Boolean
Dim tr As XmlTextReader
Dim sc As Schema.XmlSchemaCollection = New Schema.XmlSchemaCollection
Dim vr As XmlValidatingReader
Dim arrc As Char()

Try
Dim sreader As StringReader = New StringReader(sXML)

tr = New XmlTextReader(sreader)
vr = New XmlValidatingReader(tr)
sc.Add(Nothing, XSD_Path)
vr.ValidationType = ValidationType.Schema
vr.Schemas.Add(sc)
While (vr.Read())
End While
Return True
Catch ex As Exception
sMsg = ex.Message
Return False
End Try
End Function

solo che all'istruzione "sc.Add(Nothing, XSD_Path)"
ricevo l'errore Access denied sul file XSD

siccome la mia è una web application dove devo posizionare il file XSD e casomai come si deve configurare IIS per leggere correttamente il file XSD?

grazie in anticipo
ciaooo

erik77 Profilo | Senior Member

ho provato anche così... ho inserito questo path relativo :
"../file.xsd"
ma ricevo l'errore :
Could not file c:\WINNT\file.xsd

stranamente mi cerca il file sotto la cartella di default di Windows

come mai?

erik77 Profilo | Senior Member

nulla anche così mi dice Access denied e mi fà vedere il path fisico "c:\...." che è quello giusto dove si trova il file XSD

boh non sò + che provare... ma potrebbe essere che IIS non permette l'operazione?


erik77 Profilo | Senior Member

confermo.... ho provato la DLL su di un altro server con Windows Server 2003 e funziona.
Sul mio con Windows 2000 professional non funziona....



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