「System.Xml.XmlException: ':' 文字、16 進数値 0x3A を名前に含むことはできません。」
というエラーが吐出されて困ったのでメモ。
エラーになったのは以下のようなコード(C#)
var xml = new XElement("Root", "Root Value", new XAttribute("xml:lang","ja"));
コードとエラーを見て頂ければ分かると思いますが、
「:」を属性名で使ってはいけないということです。
(要素名にも使ってはいけません)
「xml:lang」の「xml」の部分は名前空間として記述しなくてはなりません。
以下が修正したコードです。
「:」を属性名で使ってはいけないということです。
(要素名にも使ってはいけません)
「xml:lang」の「xml」の部分は名前空間として記述しなくてはなりません。
以下が修正したコードです。
var xml = new XElement("Root", "Root Value", new XAttribute(XNamespace.Xml + "lang","ja"));
これで以下のようなXMLが作成されます
Root Value
(参考)
XNamespaceクラス
http://msdn.microsoft.com/ja-jp/library/system.xml.linq.xnamespace(v=vs.110).aspx