| 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 |