Sérialisation XML, XmlElement et XSD
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:
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:
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 !