使用多个名称空间将.net对象反序列化为XML

时间:2011-12-29 00:40:59

标签: c# .net xml

我有一个用于解除.net对象的类。我正试图让root XML像这样出来:

<TrainingCenterDatabase
  xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"
  xmlns:ns5="http://www.garmin.com/xmlschemas/ActivityGoals/v1"
  xmlns:ns3="http://www.garmin.com/xmlschemas/ActivityExtension/v2"
  xmlns:ns2="http://www.garmin.com/xmlschemas/UserProfile/v2"
  xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="http://www.garmin.com/xmlschemas/ProfileExtension/v1">

我班级的XmlRoot看起来像这样:

[XmlRoot(ElementName="TrainingCenterDatabase",Namespace=Declarations.SchemaVersion,IsNullable=false),Serializable]
public class TrainingCenterDatabase : com.trainerroad.garmin.TrainingCenterDatabase_t
{

    public TrainingCenterDatabase() : base()
    {
    }
}

public struct Declarations
{
    public const string SchemaVersion = "http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2";
}

并输出:

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

如何将额外的命名空间添加到我的XmlRoot?

1 个答案:

答案 0 :(得分:0)

可能不是最佳解决方案,但如果节省空间或流量非常重要,您可以使用自定义序列化方法