Linq to XML 入門 その5 (名前空間)

やっていなかったことの一つに名前空間があります。ここではプレフィックスを持つ名前空間を宣言してみます。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
 
namespace TestLinqToXML
{
    public class CreateXML
    {
        public XDocument createTestData() {
            var settings = new XDocument(
                new XDeclaration("1.0", "utf-8", "yes"));
            settings.Add(new XElement("LogClientSettings", 
                new XAttribute(XNamespace.Xmlns + "xsi", 
                "http://www.w3.org/2001/XMLSchema-instance"),
                new XAttribute(XNamespace.Xmlns + "xsd", 
                    "http://www.w3.org/2001/XMLSchema")));
            settings.Root.Add(new XElement("DatabaseName", 
                "TestDatabase"));
            XElement list = new XElement("GridSettings");
            XElement temp = new XElement("GridSetting");
            temp.Add(new XElement("PointId", 1));
            temp.Add(new XElement("ControlName", "dbGrid1"));
            temp.Add(new XElement("ColumnNumber", 1));
            temp.Add(new XElement("Description", "あの"));
            list.Add(temp);
            settings.Root.Add(list);
 
            
            return settings;
        }
    }
}

肝は15行と17行です。XAttributeでつけるんですね。(当たり前ですね)

結果はこんな感じです。


  TestDatabase
  
    
      1
      dbGrid1
      1
      あの
    
  

このほかLinq to XMLでの名前空間について詳しくは以下のMSDNドキュメントをお読みください。

XNamespace クラス (System.Xml.Linq)

コメントを残す