Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
637 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C# XML Serialize .net 2.0]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C# XML Serialize .net 2.0]

n°1758409
Sagoth
:|
Posté le 11-07-2008 à 14:23:47  profilanswer
 

Bonjour.
 
Je cherche à modifier la valeur de l'attribut

Code :
  1. xmlns:xsd="http://www.w3.org/2001/XMLSchema"

qui apparait sur mon élément racine lors de sa sérialisation. Explication :
 
1) Je génère ma classe proxy à partir de l'outil xsd.exe
2) J'obtiens mon fichier de classe .cs avec les attributs de sérialisation suivants :

Code :
  1. [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432" )]
  2.     [System.SerializableAttribute()]
  3.     [System.Diagnostics.DebuggerStepThroughAttribute()]
  4.     [System.ComponentModel.DesignerCategoryAttribute("code" )]
  5.     [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  6.     [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false, ElementName = "myRootElementPerso" )]


 
3) Lorsque j'instancie un objet à partir de cette classe, puis que je le sérialise, au niveau du xml j'ai :  

Code :
  1. <myRootElementPerso xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">


 
Ma question est la suivante : existe t'il un attribut du (dans System.Xml.Serialization.XmlRootAttribute ?) que je pourrais rajouter en plus de ceux existant déjà au niveau de ma classe proxy afin de spécifier que l'attribut root

Code :
  1. xmlns:xsd

ne soit plus http://www.w3.org/2001/XMLSchema mais soit par exemple c:\Xsd\myXsdPerso.xml
 
Qq sait t'il si on peut gérer cet attribut simplement via les attributs [System.Xml.etc...] sur la classe proxy ?
Ou dois je forcément intervenir sur ma fonction de serialisation et lui spécifier que je veux un xmlns:xsd 'maison' ?


Message édité par Sagoth le 11-07-2008 à 14:24:39
mood
Publicité
Posté le 11-07-2008 à 14:23:47  profilanswer
 

n°1758454
Sagoth
:|
Posté le 11-07-2008 à 14:45:27  profilanswer
 

Bon, j'ai trouvé sans trop de pb avec le serializer, il suffit de specifier le namespace xsd et sa valeur (ici une chaîne que j'appelle xsdFullPath)

Code :
  1. XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
  2. ns.Add("xsd", xsdFullPath.Trim());
  3. XmlSerializer serializer = new XmlSerializer(this.GetType());
  4. MemoryStream memStream = new MemoryStream();
  5. XmlWriter writer = new XmlTextWriter(memStream, Encoding.UTF8);
  6. serializer.Serialize(writer, this, ns);


 
En ce qui concernet les attributs au niveau de la classe proxy, je n'ai pas trouvé :??:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C# XML Serialize .net 2.0]

 

Sujets relatifs
[Perl ou Java?] Comment cacher la valeur d'un attribut dans du XMLC, pb avec différentes versions de gcc á la compilation
[resolu] Ajax et XML. Mon script ne fonctionne pas.C++ et Oracle sans ODBC ni JDBC
bases sur J2EE et le XMLFichier XML Ajout/Suppression de ligne
Comment coder bool en CInclusion de resources C/C++
Connexion LDAP C++[XML & PHP]Parcourt d'un fichier XML
Plus de sujets relatifs à : [C# XML Serialize .net 2.0]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR