XmlSerialzer を使用して xml を出力する WCF サービスを作成しようとしています。特定の xml 出力が必要なため、DataContract Seriailzer を使用していません。具体的には、定義済みのスキーマなどを持つカタログ サービス 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>