C# création de XML - C#/.NET managed - Programmation
MarshPosté le 13-06-2024 à 10:01:03
Bonjour,
J'ai un XML à créer sur base d'un schéma XSD relativement complex (d'ailleurs impossible de générer une class C# automatiquement avec XSD.EXE). Le schéma est ici si jamais : https://faq.goaml.lu/wp-content/upl [...] -02-22.txt
Dans ce XSD, il y a des restrictions définissant les longueur de champs, les types...
En C# on peut ajouter des attributs aux propriétés des class/objets directement, mais si je fais ça, impossible de serializer pour générer automatiquement le XML ! Je tourne en rond, impossible de trouver la solution J'ai toujours "There was an error reflecting type..." Et si j'enlève : ConfigurationElement les attributs ne servent plus à rien mais j'ai mon XML !
Du coup, comment diable intégrer ces restrictions simplement et directement dans ma class tout en pouvant serializer simplement mon objet ?
Une idée SVP ?
public class GoAMLProperties : ConfigurationElement { ...
[ConfigurationProperty("nameField", IsRequired = true, DefaultValue = "" )] [StringValidator(InvalidCharacters = "~!@#$%^&*()[]{}/;’\"|\\" , MinLength = 1 , MaxLength = 29)] public String Name { get { return (String)this["nameField"]; } set { this["name"] = value; } }
Marsh Posté le 13-06-2024 à 10:01:03
Bonjour,
J'ai un XML à créer sur base d'un schéma XSD relativement complex (d'ailleurs impossible de générer une class C# automatiquement avec XSD.EXE). Le schéma est ici si jamais : https://faq.goaml.lu/wp-content/upl [...] -02-22.txt
Dans ce XSD, il y a des restrictions définissant les longueur de champs, les types...
En C# on peut ajouter des attributs aux propriétés des class/objets directement, mais si je fais ça, impossible de serializer pour générer automatiquement le XML ! Je tourne en rond, impossible de trouver la solution J'ai toujours "There was an error reflecting type..." Et si j'enlève : ConfigurationElement les attributs ne servent plus à rien mais j'ai mon XML !
Du coup, comment diable intégrer ces restrictions simplement et directement dans ma class tout en pouvant serializer simplement mon objet ?
Une idée SVP ?
public class GoAMLProperties : ConfigurationElement
{
...
[ConfigurationProperty("nameField", IsRequired = true, DefaultValue = "" )]
[StringValidator(InvalidCharacters = "~!@#$%^&*()[]{}/;’\"|\\"
, MinLength = 1
, MaxLength = 29)]
public String Name
{
get { return (String)this["nameField"]; }
set { this["name"] = value; }
}
[ConfigurationProperty("schema_versionField", IsRequired = true, DefaultValue = "" )]
[StringValidator(InvalidCharacters = "~!@#$%^&*()[]{}/;’\"|\\"
, MinLength = 0
, MaxLength = 25)]
public string schema_version
{
get { return (String)this["schema_versionField"]; }
set { this["schema_versionField"] = value; }
}
...