Logo UGIdotNET

Discussione 'Validazione XML contenente DataSet'

# Pubblicato il 28 feb 2012 10.39 - Rispondi
Jonathan Zanardi
Validazione XML contenente DataSet
Buongiorno a tutti.
Ho una classe che contiene come membro pubblico un DataSet.

La classe viene serializzata in un XML e viene passata come parametro ad un web service.

Lato web service recupero l'XML per eseguire l'elaborazione.
Vorrei però validare l'XML ricevuto tramite un XSD.
Il problema è che nell'XML serializzato è presente lo schema del DataSet e non sono in grado di validarlo correttamente con l'XSD.

Per intenderci questo è l'xml che ottengo dalla serializzazione della mia classe:
<XServiceRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="">
<RequestType>SetSendLoadTrips</RequestType>
<IDKey>20120228100012_037</IDKey>
<RequestFrom>zanardi-toshiba</RequestFrom>
<Timestamp>20120228100012</Timestamp>
<DS>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ParamsDatiCarico">
<xs:complexType>
<xs:sequence>
<xs:element name="DEPOSITO" type="xs:string" minOccurs="0" />
<xs:element name="DATA" type="xs:dateTime" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet>
<ParamsDatiCarico diffgr:id="ParamsDatiCarico1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<DEPOSITO>037</DEPOSITO>
<DATA>2012-02-28T00:00:00+01:00</DATA>
</ParamsDatiCarico>
</NewDataSet>
</diffgr:diffgram>
</DS>
</XServiceRequest>

E questo è l'XSD con cui vorrei validarlo:
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="XServiceRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="RequestType" type="xs:string" />
<xs:element name="IDKey" type="xs:string" />
<xs:element name="RequestFrom" type="xs:string" />
<xs:element name="Timestamp" type="xs:unsignedLong" />
<xs:element name="DS">
<xs:complexType>
<xs:sequence>
<xs:element name="NewDataSet">
<xs:complexType>
<xs:sequence>
<xs:element name="ParamsDatiCarico">
<xs:complexType>
<xs:sequence>
<xs:element name="DEPOSITO" type="xs:unsignedByte" />
<xs:element name="DATA" type="xs:dateTime" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xsd:schema>

La validazione fallisce perché c'è di mezzo il diffgram nell'XML.

Qualcuno sa come affrontare questo problema?

Grazie
Ciao
John

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185