- ''' <summary>
- ''' Valide les données XML d'un document par un schéma
- ''' </summary>
- ''' <param name="schemaURI">URI du schéma XSD</param>
- ''' <param name="DocString">URI ou String XML</param>
- ''' <param name="ValidationEntree">La source XML est elle un string xml ou l'uti d'un fichier XML</param>
- ''' <returns>valide (OUI/NON) </returns>
- ''' <remarks></remarks>
- Public Function validateXML(ByVal schemaURI As String, ByVal DocString As String, Optional ByVal ValidationEntree As ValidationEntreeTypes = ValidationEntreeTypes.XML_URI) As Boolean
- m_Success = True
-
- strinLog = ""
-
- Select Case ValidationEntree
- Case ValidationEntreeTypes.XML_URI
- Try
- Dim XML_Settings As New XmlReaderSettings
- XML_Settings.Schemas.Add(Nothing, schemaURI)
- XML_Settings.ValidationType = ValidationType.Schema
- AddHandler XML_Settings.ValidationEventHandler, AddressOf ValidationCallBack
- Dim URI_XMlreader As XmlReader = XmlReader.Create(DocString, XML_Settings)
- While URI_XMlreader.Read()
- End While
- Catch ex As Exception
-
- End Try
- Case ValidationEntreeTypes.XML_TEXT_XML_string
-
- Try
- Dim XML_Settings As New XmlReaderSettings
- XML_Settings.Schemas.Add(Nothing, schemaURI)
- XML_Settings.ValidationType = ValidationType.Schema
- XML_Settings.ConformanceLevel = ConformanceLevel.Auto
-
- AddHandler XML_Settings.ValidationEventHandler, AddressOf ValidationCallBack
-
- Dim XmlDoc As New XmlDocument
- XmlDoc.LoadXml(DocString)
- Dim navigator As XPath.XPathNavigator = XmlDoc.CreateNavigator()
-
- Dim URI_XMlreader As XmlReader = XmlReader.Create(navigator.ReadSubtree(), XML_Settings)
- While URI_XMlreader.Read()
- End While
-
-
- Catch ex As Exception
- Return False
- End Try
- Case ValidationEntreeTypes.TEST
- Try
- Dim settings As XmlReaderSettings = New XmlReaderSettings()
- settings.Schemas.Add(Nothing, schemaURI)
- settings.ValidationType = ValidationType.Schema
- AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack
- '_________________________________________________________
- Dim xmldoc As New XmlDocument
- xmldoc.Load(DocString)
-
- Dim memStream As New MemoryStream()
- xmldoc.Save(memStream)
- memStream.Seek(0, SeekOrigin.Begin)
- Dim reader As XmlReader = XmlReader.Create(memStream, settings)
- '_________________________________________________________
- Dim document As XmlDocument = New XmlDocument()
- document.Load(reader)
-
- Dim eventHandler As ValidationEventHandler = New ValidationEventHandler(AddressOf ValidationCallBack)
- document.Validate(eventHandler)
- Catch ex As Exception
-
- End Try
- End Select
-
- Return m_Success
-
- End Function
''' <summary>
''' Valide les données XML d'un document par un schéma
''' </summary>
''' <param name="schemaURI">URI du schéma XSD</param>
''' <param name="DocString">URI ou String XML</param>
''' <param name="ValidationEntree">La source XML est elle un string xml ou l'uti d'un fichier XML</param>
''' <returns>valide (OUI/NON) </returns>
''' <remarks></remarks>
Public Function validateXML(ByVal schemaURI As String, ByVal DocString As String, Optional ByVal ValidationEntree As ValidationEntreeTypes = ValidationEntreeTypes.XML_URI) As Boolean
m_Success = True
strinLog = ""
Select Case ValidationEntree
Case ValidationEntreeTypes.XML_URI
Try
Dim XML_Settings As New XmlReaderSettings
XML_Settings.Schemas.Add(Nothing, schemaURI)
XML_Settings.ValidationType = ValidationType.Schema
AddHandler XML_Settings.ValidationEventHandler, AddressOf ValidationCallBack
Dim URI_XMlreader As XmlReader = XmlReader.Create(DocString, XML_Settings)
While URI_XMlreader.Read()
End While
Catch ex As Exception
End Try
Case ValidationEntreeTypes.XML_TEXT_XML_string
Try
Dim XML_Settings As New XmlReaderSettings
XML_Settings.Schemas.Add(Nothing, schemaURI)
XML_Settings.ValidationType = ValidationType.Schema
XML_Settings.ConformanceLevel = ConformanceLevel.Auto
AddHandler XML_Settings.ValidationEventHandler, AddressOf ValidationCallBack
Dim XmlDoc As New XmlDocument
XmlDoc.LoadXml(DocString)
Dim navigator As XPath.XPathNavigator = XmlDoc.CreateNavigator()
Dim URI_XMlreader As XmlReader = XmlReader.Create(navigator.ReadSubtree(), XML_Settings)
While URI_XMlreader.Read()
End While
Catch ex As Exception
Return False
End Try
Case ValidationEntreeTypes.TEST
Try
Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.Schemas.Add(Nothing, schemaURI)
settings.ValidationType = ValidationType.Schema
AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack
'_________________________________________________________
Dim xmldoc As New XmlDocument
xmldoc.Load(DocString)
Dim memStream As New MemoryStream()
xmldoc.Save(memStream)
memStream.Seek(0, SeekOrigin.Begin)
Dim reader As XmlReader = XmlReader.Create(memStream, settings)
'_________________________________________________________
Dim document As XmlDocument = New XmlDocument()
document.Load(reader)
Dim eventHandler As ValidationEventHandler = New ValidationEventHandler(AddressOf ValidationCallBack)
document.Validate(eventHandler)
Catch ex As Exception
End Try
End Select
Return m_Success
End Function