ASP.NET - Validacion XML

 
Vista:

Validacion XML

Publicado por Carlos Reyes (7 intervenciones) el 10/09/2009 16:55:42
Hola a todos, buenos dias,

Espero que alguien me pueda ayudar con este tema, se trata de lo siguiente:

Recibo un archivo de entrada en una pagina en formato excel, yo tengo un esquema en XSD que genere, es un Dataset tipeado, lo que deseo es validar cada registro del documento que envie contra el XSD que tengo, tengo una rutina que se supone me valida, pero pues segun yo no hace nada, anexo el XSD que genere y el codigo que estoy utilizando, esperando me puedan ayudar, ¿que estoy haciendo mal?.

Codigo:

erroresXSD = Nothing
Dim schVal As XmlSchema
Dim context As XmlParserContext = New XmlParserContext(Nothing, New XmlNamespaceManager(New NameTable), Nothing, XmlSpace.None)
Dim xmlReader As XmlTextReader = New XmlTextReader(Me.ObtieneLibroXML()(1), XmlNodeType.Element, context)
Dim objValidator As XmlValidatingReader = New XmlValidatingReader(xmlReader)
'set the validation type to use an XSD schema
objValidator.ValidationType = ValidationType.Schema
Dim objSchemaCol As XmlSchemaCollection = New XmlSchemaCollection
objSchemaCol.Add("", ArchivoSchema)
'objSchemaCol.Add("", xmlReader)
objValidator.Schemas.Add(objSchemaCol)
AddHandler objValidator.ValidationEventHandler, AddressOf Me.ErroresCompilacion
Try
While (objValidator.Read())

End While
'xmlInfo.InnerHtml += "<b>* XML was validated - " + intValidErrors + "</b> error(s) found";
Catch ex As Exception
'Throw New Exception(ex.Message)
'xmlInfo.InnerHtml += "<b>* Read/Parser error:</b> " + objError.Message + "<br />";
Finally
xmlReader.Close()
End Try
Return erroresXSD


XSD:

<?xml version="1.0" encoding="utf-16" ?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
elementFormDefault="qualified">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="es-MX">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="Recibos">
<xs:complexType>
<xs:sequence>
<xs:element name="Poliza" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Inciso" type="xs:double" minOccurs="0" />
<xs:element name="Endoso" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Serie" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>


Saludos!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder