Bonjour à tous,

J'ai un problème sur une application. Je m'explique...

Je crée un fichier XML via une classe que je sérialise.

Voilà le code :
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    [Serializable]
    [XmlRootAttribute(ElementName = "reponse", IsNullable = false)]
    public class reponse
    {        
        societe m_societe;
        [XmlElement(ElementName = "societe")]
        public societe Societe
        {
            get { return m_societe; }
            set
            {
                m_societe = value;
            }
        }
 
        conducteur m_contact;
        [XmlElement("contact")]
        public conducteur Contact
        {
            get { return m_contact; }
            set
            {
                m_contact = value;
            }
        }
    }
    [Serializable]
    public class societe
    {
        conducteur m_nom_societe;
        [XmlElement("nomsociete")]
        public conducteur NomSociete
        {
            get { return m_nom_societe; }
            set
            {
                m_nom_societe = value;
            }
        }
        ...
    }
 
    [Serializable]
    [XmlRootAttribute(ElementName = "contact")]
    public class contact
    {
...
    }
J'ai un fichier XSD qui vérifie la validité du fichier XML généré.
Ce fichier est fournit pas une entité externe et ne peut être modifié !

Voici les règles :
- la balise societe n'est pas obligatoire
- si la balise societe est présente les balises enfants de societe sont obligatoires
- la balise contact est obligatoire

Quand je génére le fichier XML j'ai des valeurs société à NULL le problème c'est qu'il m’insère quand même un élément societe <societe /> ce qui rend la validation du fichier caduc.

exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<liste>
 <reponse>
  <societe><nomsociete>entreprise toto</nomsociete></societe>
  <contact><nom>toto</nom></contact>
 </reponse>
 <reponse>
  <societe />
  <nom>tutu</nom>
 </reponse>
</liste>
Exite-t-il un paramètre afin d'éviter qu'il m’insère des balises vide (<societe />)
J'ai déjà essayer la propriété IsNullable sans succès !

Merci d'avance pour votre aide !