Создать атрибуты 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) не генерируется, потому что строка не компилируется.
Любая идея о том, как я мог генерировать эти атрибуты?
Спасибо, л
РЕДАКТИРОВАТЬ - также нашел его здесь: Создание XML с пространствами имен и схем из XElement
1 ответ
Решение
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;