Есть ли способ в Linq использовать два префикса для одного и того же пространства имен? Например, у меня есть два префикса ниже «foo1» и «foo2», указывающие на то же пространство имен, которое я хочу использовать в своем документе. Как мне это сделать?
<foo1:Begin foo2:Name="somevalue" xmlns:foo1="http://foo" xmlns:foo2="http://foo" xmlns="http://bar">
<foo1:Child foo2:Name="somename" />
<SomeBarElement />
</foo1:Begin>
Во всем моем коде я определяю элементы как:
string foo = "http://foo";
string bar = "http://bar";
string foo1 = "foo1";
string foo2 = "foo2";
XName Begin = "{" + foo + "}" + "Begin";
XName Child = "{" + foo + "}" + "Child";
XName Name = "{" + foo + "}" + "Name";
XName SomeBarElement = "{" + bar + "}" + "SomeBarElement";
Я хотел бы иметь возможность использовать подобное определение и использование элементов для обеспечения согласованности. И где бы у меня не было двух префиксов, я делаю что-то вроде:
XElement doc = new XElement(Begin,
new XAttribute(XNamespace.Xmlns + foo1, foo),
new XAttribute(XNamespace.Xmlns, bar),
new XElement(Child, new XAttribute(Name, "somename")),
new XElement(SomeBarElement)
);
Мне нужны два префикса, так как пространства имен могут измениться позже - и даже если нет, имеет смысл логически разделять элементы, используя разные префиксы.