我正在尝试编写一个使用 XmlSerialzer 输出 xml 的 WCF 服务。我需要一个特定的 xml 输出,这就是我不使用 DataContract Serialzer 的原因。具体来说,我正在编写一个具有已定义架构等的目录服务 web(csw)。
我一直在尝试先编写类,然后测试输出的是什么 XML。这相当乏味,我可能会切换到 xsd 实用程序。我想知道的是我可以将 xml 属性添加到其他类成员,还是只将那些修饰的 xmlattributes 添加到根元素,即类名?与使用 XDocument 手动编写 CML 相比,似乎存在灵活性问题。每次我需要嵌套元素(不是集合)时,似乎我需要创建一个新类?是对的吗?
我需要的输出xml是:
<ows:ContactInfo>
<ows:OnlineResource
xlink:href="mailto:enquiry@gis.nottscc.gov.uk"/>
</ows:ContactInfo>
这是我的课:
public class ContactInfo
{
[XmlElement]
public string OnlineResource = "";
[XmlElementAttribute(ElementName = "OnlineResource",Namespace = "http://www.w3.org /1999/xlink")]
public string href = "mailto:enquiry@gis.nottscc.gov.uk";
}
输出xml如下:
<ows:ContactInfo xlink:href="mailto:enquiry@gis.nottscc.gov.uk">
<ows:OnlineResource>mailto:enquiry@gis.nottscc.gov.uk</ows:OnlineResource>
</ows:ContactInfo>