2012-05-16 3 views
0

Я должен создать файл XML, который содержит элемент с атрибутами, такими как:Сформировать XML атрибуты

<element 
    xsi:schemaLocation="http://test.xsd" 
    xmlns="http://test2" 
    xmlns:xsi=http://test3> 

Я попытался:

XNamespace ns = "xsi";    
var root = new XElement("element", 
         new XAttribute(ns + "schemaLocation", "http://test.xsd"), // (I) 
         new XAttribute(XNamespace.Xmlns, "http://test2"),   // (II) 
         new XAttribute(XNamespace.Xmlns + "xsi", "http://test3"), // (III) 

Но единственное, что генерируется штраф (III):

xmlns:xsi=http://test3 

(I), генерируется как:

p1:schemaLocation="http://test.xsd" xmlns:p1="xsi" 

и (II) не создается, потому что линия не скомпилируется.

Любая идея о том, как я мог бы сгенерировать эти атрибуты?

Спасибо, L

EDIT - также нашел его здесь: Creating XML with namespaces and schemas from an XElement

ответ

0
const string ns = "http://test2"; 
const string si = "http://test3"; 
const string schema_location = "http://test.xsd"; 

XNamespace xns = ns; 
XNamespace sinsp = si; 

    XElement xe = new XElement(xns + "element", 
      new XAttribute(XNamespace.Xmlns + "xsi", si), 
      new XAttribute(sinsp+ "schemaLocation", schema_location), 
      new XElement(xns + "sometag", "somecontent") 
     ); 

    return xe; 
Смежные вопросы