C# 通过XML序列化和属性c生成XML 这是我的xml 达莫特公司 达莫特公司 Ojca Damiana Tynieckiego 46 达尔3owo PL 76-150 达尔3owo 943143185 UPS标准 1. 再制造汽车零件 聚丙烯 人物配对关系 1. 我们的地址:AWP0021 工作#41149 999

C# 通过XML序列化和属性c生成XML 这是我的xml 达莫特公司 达莫特公司 Ojca Damiana Tynieckiego 46 达尔3owo PL 76-150 达尔3owo 943143185 UPS标准 1. 再制造汽车零件 聚丙烯 人物配对关系 1. 我们的地址:AWP0021 工作#41149 999,c#,xml-serialization,C#,Xml Serialization,我需要通过c#中的xml序列化从类中生成。 因此,请指导我如何编写类结构来获取上述xml 如果仔细看一下我的xml,就会发现几乎没有带属性的标记。这是 <OpenShipments xmlns="x-schema:C:\UPSLabel\OpenShipments.xdr"> 因此,如何编写具有上述一个ShipmentOption=“”ProcessStatus=“”属性的属性,以及如何生成带有OpenShippings标记的xmlns,如xmlns=“x-schema:C:

我需要通过c#中的xml序列化从类中生成。 因此,请指导我如何编写类结构来获取上述xml

如果仔细看一下我的xml,就会发现几乎没有带属性的标记。这是

<OpenShipments xmlns="x-schema:C:\UPSLabel\OpenShipments.xdr">

因此,如何编写具有上述一个ShipmentOption=“”ProcessStatus=“”属性的属性,以及如何生成带有OpenShippings标记的xmlns,如xmlns=“x-schema:C:\UPSLabel\OpenShippings.xdr”。在这里,我不知道如何处理这种情况,xml中的路径也不是固定的…C:\UPSLabel\OpenShippings.xdr。
这将根据情况而有所不同。因此,请详细指导我如何为上述xml编写类。谢谢打开Visual Studio命令提示符。然后使用该工具为您完成以下工作:

C:\work>xsd.exe test.xml
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'C:\work\test.xsd'.

C:\work>xsd.exe /classes test.xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'C:\work\test.cs'.
其中
test.xml
是您在帖子中显示的文件。如您所见,这将生成
test.cs
,其中将包含可用于反序列化此XML的类:

using (var reader = XmlReader.Create("test.xml"))
{
    var serializer = new XmlSerializer(typeof(OpenShipments));
    var openShipments = (OpenShipments)serializer.Deserialize(reader);
    // TODO: do something with those shipments like for example shipping them :-)
}

打开Visual Studio命令提示符。然后使用该工具为您完成以下工作:

C:\work>xsd.exe test.xml
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'C:\work\test.xsd'.

C:\work>xsd.exe /classes test.xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'C:\work\test.cs'.
其中
test.xml
是您在帖子中显示的文件。如您所见,这将生成
test.cs
,其中将包含可用于反序列化此XML的类:

using (var reader = XmlReader.Create("test.xml"))
{
    var serializer = new XmlSerializer(typeof(OpenShipments));
    var openShipments = (OpenShipments)serializer.Deserialize(reader);
    // TODO: do something with those shipments like for example shipping them :-)
}

您可以使用XElement类(System.Xml.Linq)。例如:

XElement element = new XElement("OpenShipments");
XAttribute attribute = new XAttribute("xmlns", @"x-schema:C:\UPSLabel\OpenShipments.xdr");
element.Add(attribute);
如果路径不固定,可以执行以下操作:

string path = "C:\..."; // get your path here
XAttribute attribute = new XAttribute("xmlns", @"x-schema:" + path);

您可以使用XElement类(System.Xml.Linq)。例如:

XElement element = new XElement("OpenShipments");
XAttribute attribute = new XAttribute("xmlns", @"x-schema:C:\UPSLabel\OpenShipments.xdr");
element.Add(attribute);
如果路径不固定,可以执行以下操作:

string path = "C:\..."; // get your path here
XAttribute attribute = new XAttribute("xmlns", @"x-schema:" + path);