IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

probleme Xml avec class VB et xsd


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut probleme Xml avec class VB et xsd
    Bonjour,
    Je réalise un petit soft en VB net 2012.
    Ce soft doit importer des données contenues dans un fichier xml généré ailleurs suivant un shéma xsd
    J'ai donc généré les class VB net en utilisant Xsd2Code.
    L'importation plante le serializer à la ligne Dim MonEchange
    avec ce message
    Une exception non gérée du type 'System.InvalidOperationException' s'est produite dans System.Xml.dll
    Informations supplémentaires*: Il existe une erreur dans le document XML (2, 2).
    J'ai alors pris le problème à l'envers et j'ai crée une instance de ma classe echange, que j'ai sérialisé dans un fichier xml.
    après différents copier-coller dans les fichiers xml, j'ai réussi à isoler le problème.
    Cela vient de l’entête du fichier que je dois importer et qui commence comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="UTF-8"?>
    <echange xmlns="http://www.anfr.fr" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.anfr.fr Echanges.xsd" id="3d8525b3-34c6-3054-c575-f5480f171172" dateEmission="2012-03-22" heureEmission="12:30:00" emetteur="XXXXX_XXX" destinataire="ANFR">
      <rapportsMesures>
    Le fichier xml que je créé lui, commence ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="utf-8"?>
    <echange xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="7b46798c-4f95-4498-a5ec-b0cc38e46498" dateEmission="2012-03-22" heureEmission="0001-01-01T12:30:00" emetteur="ASP" destinataire="dddd">
      <rapportsMesures>
    il y a une différence notable, c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xsi:schemaLocation="http://www.anfr.fr Echanges.xsd"
    Qu'est-ce que j'ai oublié de déclarer dans mon code de classe VB net?
    Merci d'avance pour votre réponse

    Voici les codes de classe et de xsd:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Public Sub importerXML(MonFichier As String)
            Dim MaClasse As New echanges.echangeRapportsMesures
     
            '  Dim reader = New XmlSerializer(GetType(echange))
            Dim reader = New XmlSerializer(GetType(echanges.echange))
            Dim file = New StreamReader(MonFichier)
            Dim MonEchange = CType(reader.Deserialize(file), echanges.echange)
            file.Close()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Imports System.Diagnostics
    Imports System.Xml.Serialization
    Imports System.Collections
    Imports System.Xml.Schema
    Imports System.ComponentModel
    Imports System.Collections.Generic
    Namespace echanges
     
        Partial Public Class echange
            Private rapportsMesuresField As echangeRapportsMesures
            Private idField As String
    Voici le début du xsd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?xml version="1.0"?>
    <xs:schema 
    		xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    		targetNamespace="http://www.anfr.fr"
    		xmlns:mcr="http://www.anfr.fr"
    		elementFormDefault="qualified">
     
    	<xs:include schemaLocation="Bases.xsd"/>
    	<xs:include schemaLocation="OrganismesEchangeursEnum.xsd"/>
    	<xs:include schemaLocation="RapportsMesures.xsd"/>
     
    	<xs:element name="echange">
    		<xs:annotation>
    			<xs:documentation>Echange d'informations réalisé entre l'ASP, l'ANFR et les laboratoire pour transmettre des informations de type Rapports de mesures, Commandes ASP, Rapport d'erreurs, Rapport de validation, Accusés de récéption</xs:documentation>
    		</xs:annotation>
    		<xs:complexType>
    			<xs:sequence >
    				<xs:choice>
    					<xs:element name="rapportsMesures">

  2. #2
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut Eureka j'ai finalement trouvé la solution
    Voila, avec mon ami gogol, et une nuit de sommeil, j'ai trouvé la solution
    j'ai rajoute çà dans mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Partial Public Class echange
            <System.Xml.Serialization.XmlAttribute("schemaLocation", [Namespace]:="http://www.w3.org/2001/XMLSchema-instance")> _
            Public SchemaLocation As String = "http://www.anfr.fr Echanges.xsd"
    Voila, pour éventuellement d'autres apprentis xml

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme xml avec wamp
    Par lemessindu57 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 02/06/2010, 21h37
  2. [XSD] Validation une instance XML avec schéma(plusieurs fichiers XSD)
    Par ttttnht dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 07/09/2009, 15h16
  3. Réponses: 5
    Dernier message: 31/07/2007, 19h28
  4. [XSLT][XSD>XML]transformer xsd en xml avec xslt
    Par émile-henri dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 14/06/2005, 15h06
  5. [XSD][xerces] validation xml avec un xsd
    Par chand_bing dans le forum Valider
    Réponses: 2
    Dernier message: 05/02/2004, 20h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo