2010-07-23 7 views
0

J'ai généré des classes à partir de xsd et je souhaite sérialiser le DateTime. Ma classe ressembleSérialiser Datetime sans GMT en C#

private System.DateTime timeGMT; 

[System.Xml.Serialization.XmlElementAttribute(DataType="time")] 
public System.DateTime TimeGMT { 
    get { 
     return this.timeGMT; 
    } 
    set { 
     this.timeGMT= value; 
    } 
} 

Mais quand je céder tout objet DateTime Il sérialise au format que

<TimeGMT>12:00:00.0000000-04:00</TimeGMT> 

Mais je veux que ce soit sérialisé comme

<TimeGMT>12:00:00</TimeGMT> 

J'ai eu un coup d'oeil à cette question:

Serializing DateTime to time without milliseconds and gmt

qui est similaire à mon cas. Mais mon problème est que je veux aussi valider le xml généré contre xsd. Je ne peux donc pas convertir le type de retour en chaîne. (Si j'utilise chaîne comme type de retour alors obtenir une exception tout en générant XML comme

time is an invalid value for XMLElementAttribute.DataType property.The property may be specified for only primitive types. 

)

est-il un autre moyen là-bas? Merci d'avance.

Répondre

0

La solution dans votre question liée est ce que vous devez faire. Vous pouvez toujours valider le XML résultant contre un XSD, mais le XSD ne doit pas définir cet élément comme un type XML datetime (car c'est celui avec les millisecondes et le fuseau horaire, que vous avez dit ne pas vouloir). Au lieu de cela, vous devrez définir votre propre type XSD qui correspond à ce que vous voulez.

Questions connexes